Dies wird ein Here-doc genannt. Es nimmt im Grunde genommen alles von der nächsten Zeile bis zu einer Endmarkierungslinie auf und präsentiert es als Standardeingabe für das laufende Programm. Die Endmarkierungslinie wird durch den Text nach der <<
gesteuert.
Als Beispiel in bash
(was ich mit als Perl mehr vertraut bin), der Befehl:
cat <<EOF
hello
goodbye
EOF
wird cat
laufen und dann zwei Linien auf seine Standardeingabe (die Hallo und auf Wiedersehen Linien schicken). Perl hat diese Funktion auch, obwohl die Syntax etwas anders ist (wie Sie es erwarten würden, da es eine andere Sprache ist). Trotzdem ist es nah genug, dass die Erklärung noch immer gültig ist.
Wikipedia hat an entry for this, die Sie wahrscheinlich gefunden hätten, wenn Sie gewusst hätten, dass es ein here-doc genannt wurde, aber andernfalls würde es ziemlich schwierig sein, es herauszufinden.
In Ihrem speziellen Fall besteht zwischen der Verwendung von EOF
und PETE
, gibt es eine Beziehung zwischen dem heredoc Marker (das Bit folgenden <<
) und dem Ende der Standardeingabe kein Unterschied.
Zum Beispiel, wenn einer Ihrer Eingangsleitungen EOF
war, konnte man nicht wirklich verwenden, die als Marker, da die Standardeingabe vorzeitig beendet werden würde:
cat <<EOF
This section contains the line ...
EOF
but then has more stuff
and this line following is the real ...
EOF
In diesem Fall könnten Sie PETE
verwenden (oder irgendetwas anderes, das nicht im Text in einer eigenen Zeile erscheint).
Es gibt andere Optionen wie die Verwendung von Anführungszeichen um den Marker herum (damit der Einzug besser aussehen kann) und die Verwendung einfacher oder doppelter Anführungszeichen zur Steuerung der Variablensubstitution.
Wenn Sie auf die perlop
Seite gehen und nach <<EOF
suchen, wird es hoffentlich klar werden.