如何在Perl中重现“不能使用未定义的值作为符号引用”?

时间:2011-07-20 10:27:41

标签: perl

Can't use an undefined value as a symbol reference 

任何人都知道如何重现它?

3 个答案:

答案 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。