在 Perl 中,通常可以避免使用控制块,如下所示:
print "$_\n" foreach(@files);
代替:
foreach(@files){
print "$_\n";
}
此语法在以下更复杂的情况下如何工作:
die("Not a file: $_") unless -f $_ foreach(@files);
它给了我一个语法错误。我不是想写混淆代码,它只是程序中不重要的部分,所以我想尽可能简洁地表达它。
总结答案:
我只能接受一个答案作为已接受的答案,但我最喜欢 Chris 和 Jon 的以下答案。
这个foreach
按我的意图使用,但没有syntax error
:
-f or die "Not a file: $_" foreach @files;
下面的一个至少也一样好。我喜欢die
在声明的开头,因为这就是读者的注意力应该指向的内容:
die("Not a file: $_") for grep {!-f} @files;