これはヒアドキュメントと呼ばれます。基本的に、次の行から終了マーカー行までのすべてを取得し、実行中のプログラムへの標準入力として提示します。エンド マーカー ラインは、 に続くテキストによって制御されます<<
。
例として、bash
(私は Perl よりもよく知っています) では、次のコマンドを実行します。
cat <<EOF
hello
goodbye
EOF
が実行cat
され、標準入力に 2 行 (hello と goodbye 行) が送信されます。Perl にもこの機能がありますが、構文は少し異なります (言語が異なるため、ご想像のとおり)。それでも、説明がまだ保持されるのに十分近いです。
ウィキペディアには、ヒアドキュメントと呼ばれていることを知っていればおそらく見つけたであろうエントリがありますが、そうでなければ、それを理解するのはかなり難しいでしょう.
EOF
あなたの特定のケースでは、 と の使用に違いはありません。ヒアドキュメント マーカー ( の後のビット) と標準入力の終わりのPETE
間には関係があります。<<
たとえば、入力行の 1 つが である場合EOF
、標準入力が途中で終了するため、それをマーカーとして実際に使用することはできません。
cat <<EOF
This section contains the line ...
EOF
but then has more stuff
and this line following is the real ...
EOF
その場合、使用できますPETE
(または、テキスト自体の行に表示されないその他のもの)。
マーカーを引用符で囲んだり (インデントの見栄えを良くするため)、一重引用符または二重引用符を使用して変数置換を制御するなど、他のオプションもあります。
ページに移動してperlop
を検索すると<<EOF
、うまくいけばすべてが明らかになります。