stdin からコマンドを受け取り、有用な終了コードを返すプログラムユーティリティが与えられた場合、次の perl 構文が機能します。
my $result = `utility -switch1 -switch2 <<HERE
set ridin_round_the_world TRUE;
do this;
sign that;
try {
make some_girl;
return 0;
}
except {
sleep --week;
exit 1;
}
HERE`;
print "result is $result\n";
「動作する」とは、perl スクリプトがユーティリティを起動し、コマンド リストにパイプを送り、ユーティリティが終了するまで待機し、結果を返すことを意味します。
しかし、なぜそれが機能するのですか?バックティックはどのようにしてプログラムを呼び出し、次に HERE ドキュメントにパイプすることを認識しますか? perl の実装で運が良かっただけですか、それともこれは標準的な動作ですか?