在我的程序中,我收到错误:
$ 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
第一种情况有什么问题?
答案 0 :(得分:10)
语句print $i +0
不同,因为$i
可能是有效的文件句柄。但是当perl尝试将其用作一个时,它会失败,因为它是undef
perl用于确定您是否尝试使用文件句柄的精确规则是神秘的,但只需在$i
之后删除空格即可阻止此解释并打印表达式$i+0
而不是