什么';在Perl中,这是什么意思?
似乎总是什么';在Perl中,这是什么意思?,perl,Perl,似乎总是正确,版本是5.8.8 更新 我不是以root用户身份运行,而是为了隐私而更改的:)你是说从?您可能希望首先加载函数: [root@ ~]$ perl -e "print 1 if blessed $a;" 1 [root@ ~]$ perl -e "print 1 if blessed $c;" 1 [root@ ~]$ perl -e "print 1 if blessed $cee;" 1 否则,您的只是一个空字(字符串),这显然是正确的。如前所述,您需要在使用该方法之前加载模块
正确
,版本是5.8.8
更新
我不是以root用户身份运行,而是为了隐私而更改的:)你是说从?您可能希望首先加载函数:
[root@ ~]$ perl -e "print 1 if blessed $a;"
1
[root@ ~]$ perl -e "print 1 if blessed $c;"
1
[root@ ~]$ perl -e "print 1 if blessed $cee;"
1
否则,您的
只是一个空字(字符串),这显然是正确的。如前所述,您需要在使用该方法之前加载模块。另外,如果您使用了perl-we
而不是perl-e
,您可能不会问这个问题
对于我来说,使用perl-we
,我得到以下警告:
perl -MScalar::Util=blessed -e "print 1 if blessed $a;"
在Perl中不是关键字。在shell命令中使用双引号,因此变量($a
、$c
等)来自shell环境,而不是Perl变量。
因为这些环境变量可能是空的,所以您实际上是在执行脚本
Can't call method "blessed" without a package or object reference at -e line 1.
像这样使用时,befored
只是一个空字字符串,其计算结果总是true。你所做的和跑步没什么区别
print 1 if blessed ;
当您不知道它作为root用户的作用时运行代码可能不是最好的主意!你希望看到什么?可能是@Greg Hewgill的复制品,有什么不受祝福的吗?你说的这个“受祝福的”
”是什么?你是说“?怎么能祝福$a
被解释为bareword?bareword不作为字符串,因为打印测试
不会输出测试
@asker-打印测试
不是一个很好的例子,因为它被解析为打印测试$
(使用测试作为文件句柄)。尝试打印标准测试。但是无论如何,在你的例子中,祝福
并不是空话,因为周围的环境(当祝福没有定义时,它被解释为$a->祝福
)@asker,shell为$a
插入一个空字符串,因此如果祝福
,代码就是打印1,这与打印1如果“祝福”是一样的
当strict处于关闭状态时。@bvr,它不会被解释为$a->受祝福的
。这将导致运行时错误。看到我给asker的消息了吗?哎呀,我没有想到。由于引用,我假设OP在Windows上。这一点很好。或者更清楚地说,这就像运行perl-e“print1 if'bleed'”
$ perl -e 'print 1 if foo'