当我运行我的.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希望它是==而不是=,当我只是删除“和”关键字时,为什么这个警告会消失?
提前致谢。
答案 0 :(得分:2)
and
的功能是比较布尔值真值。布尔上下文中的赋值通常是错误(人们在if $a=$b
表示if $a==$b
时写warnings
,因此print
会为此发出消息。
如果您真的只想在"\n\n"
评估为真时才&&
,则可以使用and
代替{{1}};但是从你的例子来看,分号更有意义。