为什么我得到`不能在...错误时使用未定义的值作为符号引用?

时间:2018-04-07 09:07:07

标签: perl runtime-error

在我的程序中,我收到错误:

$ perl -e 'print $i +0'
Can't use an undefined value as a symbol reference at -e line 1.

但接下来的两个工作正常:

$ perl -e 'print $i'
$ perl -e 'print 0 +$i'
0

第一种情况有什么问题?

1 个答案:

答案 0 :(得分:10)

语句print $i +0不同,因为$i可能是有效的文件句柄。但是当perl尝试将其用作一个时,它会失败,因为它是undef

perl用于确定您是否尝试使用文件句柄的精确规则是神秘的,但只需在$i之后删除空格即可阻止此解释并打印表达式$i+0而不是