gpt4 book ai didi

perl - 在 foreach 中将 undef 变量提升为 ARRAY ref

转载 作者:行者123 更新时间:2023-12-05 00:54:36 26 4
gpt4 key购买 nike

use strict;                  
use warnings FATAL => 'all';

my $x = undef;
if (@$x) { print "ok\n" }
else { print "no\n" }

对于 if (@$x)

可预测地产生“不能使用未定义的值作为 ARRAY 引用”。但是插入一个foreach (@$x):

use strict;                  
use warnings FATAL => 'all';

my $x = undef;
foreach (@$x) { print $_ } # <-------
if (@$x) { print "ok\n" }
else { print "no\n" }

print ref($x)."\n";

输出:

no
ARRAY

foreach 行似乎对$x 进行了赋值。这是怎么回事?

最佳答案

自动生成

@$x

相当于

@{ $x //= [] }

在左值上下文中。

使用

if ($x) {
for (@$x) {
...
}
}

关于perl - 在 foreach 中将 undef 变量提升为 ARRAY ref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56776861/

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