为什么Perl会发出此警告?

时间:2014-11-17 07:08:33

标签: perl

当我运行我的.pl文件时,它会发出以下代码的警告 - “Found = in conditional,should ==”:

{local $"="\n\n" and print "My Array:\n@MyArr\n";}

但是当我删除“和”并写下这个警告时,这个警告会消失:

{local $"="\n\n"; print "My Array:\n@MyArr\n";}

有什么猜测为什么会这样?为什么Perl希望它是==而不是=,当我只是删除“和”关键字时,为什么这个警告会消失?

提前致谢。

1 个答案:

答案 0 :(得分:2)

and的功能是比较布尔值真值。布尔上下文中的赋值通常是错误(人们在if $a=$b表示if $a==$b时写warnings,因此print会为此发出消息。

如果您真的只想在"\n\n"评估为真时才&&,则可以使用and代替{{1}};但是从你的例子来看,分号更有意义。