gpt4 book ai didi

perl - 一行简洁的 foreach 表达式

转载 作者:行者123 更新时间:2023-12-02 11:23:02 24 4
gpt4 key购买 nike

在 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;

最佳答案

为了成为 Perlish (TMTOWTDI),您可以使用逻辑短路:

-f or die "Not a file: $_" foreach @files;

在 OS X 上测试并有效。

作为旁注, -f or die看起来很常见 open() or die我在 Perl 中看到的构造,并且仍然(我认为)显示了该行的意图(在某些条件下到 die)。

关于perl - 一行简洁的 foreach 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com