gpt4 book ai didi

perl - 文件测试在给定的……切换时使用 `$_` 还是 `_`?

转载 作者:行者123 更新时间:2023-12-01 11:57:34 25 4
gpt4 key购买 nike

当使用 file test operators 时,stat() 结果缓存在 _ 中,因此如果您想执行多个测试,则不需要执行更多系统调用。

if (-f $file_) {
say 'readable' if -r _;
say 'writable' if -w _;
}

如果我在 given…when 中使用它们, 他们使用 _ 还是 $_

given ($file) {
when (! -f) {}
when (-r) {say 'readable';continue}
when (-w) {say 'writable';continue}
....
}

我的印象是这将使用 $_。真的吗?也因为 given...when 没有默认的 fall-through 有必要使用 continue 来查看其他匹配项。

given...when 方法相比,if 可能可以更好地解决这种情况,并且使用更少的输入。但是在重构你的软件时,看看你是否能适应 given...when 太诱人了。 ;-)

最佳答案

这是它分解成的内容:

sub {
use warnings;
use strict 'refs';
BEGIN {
$^H{'feature_unicode'} = q(1);
$^H{'feature_say'} = q(1);
$^H{'feature_state'} = q(1);
$^H{'feature_switch'} = q(1);
}
my $file = shift @_;
given ($file) {
when (not -f $_) {
();
}
when (-r $_) {
say 'readable';
continue;
}
when (-w $_) {
say 'writable';
continue;
}
}
}

所以它不会在操作码中显示智能匹配。

关于perl - 文件测试在给定的……切换时使用 `$_` 还是 `_`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5492748/

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