To się nazywa tutaj-doc. Zasadniczo pobiera wszystko od następnego wiersza aż do końca linii znacznika i przedstawia go jako standardowe wejście do uruchomionego programu. Końcowa linia znaczników jest kontrolowana przez tekst następujący po <<
.
Jako przykład, w bash
(którego jestem bardziej zaznajomieni z ponad Perl), polecenie:
cat <<EOF
hello
goodbye
EOF
potrwa cat
a następnie wysłać dwie linie do swojego standardowego wejścia (na cześć i linii goodbye). Perl ma tę funkcję, chociaż składnia jest nieco inna (jak można się spodziewać, biorąc pod uwagę, że jest to inny język). Nadal jest wystarczająco blisko, aby wyjaśnienie nadal się utrzymywało.
Wikipedia ma an entry for this, którą prawdopodobnie byś znalazł, gdybyś wiedział, że nazywa się tutaj-doc, ale w przeciwnym razie trudno byłoby to rozgryźć.
W konkretnych przypadkach, nie ma różnicy między używaniem EOF
i PETE
, istnieje związek pomiędzy markerem heredoc (bit następującym <<
) i końca standardowego wejścia.
Na przykład, jeśli jeden z linii wejściowych była EOF
, można naprawdę nie używać, jako markera ponieważ standardowe wejście zostanie zakończone przedwcześnie:
cat <<EOF
This section contains the line ...
EOF
but then has more stuff
and this line following is the real ...
EOF
W takim przypadku można użyć PETE
(lub cokolwiek innego, co nie pojawia się w tekście we własnym wierszu).
Istnieją inne opcje, takie jak używanie cudzysłowów wokół znacznika (aby wcięcie mogło wyglądać lepiej) oraz użycie pojedynczych lub podwójnych cudzysłowów do kontrolowania zastępowania zmiennych.
Jeśli przejdziesz na stronę perlop
i wyszukaj <<EOF
, to na szczęście wszystko stanie się jasne.