Can't use an undefined value as a symbol reference
任何人都知道如何重现它?
答案 0 :(得分:4)
print $bar 1;
发出错误。你可以看到它的含义on this perlmonks thread
的一个很好的解释由splain
解释:
Can't use an undefined value as a symbol reference (#1)
(F) A value used as either a hard reference or a symbolic reference must
be a defined value. This helps to delurk some insidious errors.
答案 1 :(得分:3)
这是最简单的形式:
say *{my $a}{SCALAR}; # OR say ${ *{my $a} };
答案 2 :(得分:1)
perl -we '$x = shift; *$x = sub {42}; print $x->()'
如果使用ANY参数(包括''
)调用此代码,则会打印42,但会提供所需的警告,而不是args。