欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

perl 中的or与||的区别

程序员文章站 2022-04-29 19:12:37
来看看下面的代码会输出什么? 复制代码 代码如下:my $a = 0;$a = $a or 1;print $a, "\n";$a = $a || 1;print $a,...

来看看下面的代码会输出什么?

复制代码 代码如下:

my $a = 0;
$a = $a or 1;
print $a, "\n";
$a = $a || 1;
print $a, "\n";

输出:
0
1
为什么呢?因为||, =, or 这三者优先级从左至右逐渐降低。
所以,这样写可以:
chomp(my $filename = shift( @argv ) || <stdin>);

这样则不行:
chomp(my $filename = shift( @argv ) or <stdin>);
会提示如下错误:
can't modify logical or (||) in chomp