Đây được gọi là tài liệu tại đây. Về cơ bản nó lấy tất cả mọi thứ từ dòng tiếp theo cho đến khi một dòng đánh dấu kết thúc và trình bày rằng như là đầu vào tiêu chuẩn cho chương trình bạn đang chạy. Dòng đánh dấu kết thúc được kiểm soát bởi văn bản sau <<
.
Như một ví dụ, trong bash
(mà tôi quen thuộc hơn với hơn Perl), lệnh:
cat <<EOF
hello
goodbye
EOF
sẽ chạy cat
và sau đó gửi hai dòng để đầu vào tiêu chuẩn của nó (xin chào và tạm biệt dòng). Perl cũng có tính năng này mặc dù cú pháp hơi khác (như bạn mong đợi, với một ngôn ngữ khác). Tuy nhiên, nó đủ gần để lời giải thích vẫn giữ.
Wikipedia có số an entry for this mà bạn có thể đã tìm thấy khi bạn biết nó được gọi là tài liệu ở đây, nhưng nếu không sẽ khó tìm ra.
Trong những trường hợp cụ thể của bạn, không có sự khác biệt giữa việc sử dụng EOF
và PETE
, có một mối quan hệ giữa các điểm đánh dấu heredoc (bit sau <<
) và kết thúc đầu vào tiêu chuẩn.
Ví dụ, nếu một trong những dòng đầu vào của bạn là EOF
, bạn có thể không thực sự sử dụng như là một dấu hiệu từ đầu vào tiêu chuẩn sẽ được chấm dứt sớm:
cat <<EOF
This section contains the line ...
EOF
but then has more stuff
and this line following is the real ...
EOF
Trong trường hợp đó, bạn có thể sử dụng PETE
(hoặc bất kỳ thứ gì khác không xuất hiện trong văn bản trên dòng riêng của nó).
Có các tùy chọn khác như sử dụng dấu ngoặc kép xung quanh điểm đánh dấu (để thụt đầu dòng có thể trông đẹp hơn) và sử dụng dấu nháy đơn hoặc kép để kiểm soát thay thế biến.
Nếu bạn truy cập trang perlop
và tìm kiếm <<EOF
, hy vọng tất cả sẽ trở nên rõ ràng.