=和,Perl中的运算符

前端之家收集整理的这篇文章主要介绍了=和,Perl中的运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请解释这个明显不一致的行为:

$a = b,c;
print $a; # this prints: b

$a = (b,c);
print $a; # this prints: c

解决方法

由于eugene的答案似乎留下了OP的一些问题,我试着解释一下:

$a = "b","c";
print $a;

左边的参数是$a =“b”,因为=的优先级高于,它将首先进行评估.之后$a包含“b”.

正确的参数是“c”,并将在我即将展示时返回.

此时,当您打印$a时,显然是在屏幕上打印b.

$a = ("b","c");
print $a;

这里将首先评估术语(“b”,“c”),因为括号的优先级更高.它返回“c”,这将被分配给$a.

所以在这里打印“c”.

$var = ($a = "b","c");
print $var;
print $a;

这里$a包含“b”,$var包含“c”.

一旦获得优先规则,这就完全一致了

猜你在找的Perl相关文章