Perl では、多くの場合、次のように制御ブロックの使用を避けることができます:
print "$_\n" foreach(@files);
それ以外の:
foreach(@files){
print "$_\n";
}
この構文は、次のより複雑なケースでどのように機能しますか。
die("Not a file: $_") unless -f $_ foreach(@files);
構文エラーが発生します。難読化したコードを書こうとしているわけではありません。それはプログラムの重要でない部分に過ぎないので、できるだけ簡潔に表現したいと考えています。
要約された回答:
受け入れられた回答として受け入れることができる回答は 1 つだけですが、Chris と Jon からの次の回答が一番気に入っています。
これはforeach
私が意図したとおりに使用しますが、なしでsyntax error
:
-f or die "Not a file: $_" foreach @files;
そして、次のものは少なくとも同じくらい良いです。私はそれdie
がステートメントの冒頭にあるのが好きです。なぜなら、それは読者の注意が向けられるべきものだからです:
die("Not a file: $_") for grep {!-f} @files;