print "$_\n" foreach(@files);
替代:
foreach(@files){
print "$_\n";
}
在以下更复杂的情况下,这个语法是如何工作的:
die("Not a file: $_") unless -f $_ foreach(@files);
它给了我一个语法错误。我并不想写混淆的代码,只是程序中不重要的一部分,所以我想尽可能简洁地表达它。
总结:
我只能接受一个答案作为被采纳的答案,但我最喜欢 Chris 和 Jon 提供的答案。
这个答案使用了 foreach
,正如我想象的那样,但没有出现 语法错误
:
-f or die "Not a file: $_" foreach @files;
接下来这个至少和前面那个一样好。我喜欢die
在语句开头的位置,因为读者的注意力应该集中在这里:
die("Not a file: $_") for grep {!-f} @files;
die()
最好放在行的开头,但是在紧急情况下,对我来说短路逻辑也同样易读。 - Chris Lutz