用户登录
用户注册

分享至

perl 中的or与||的区别

  • 作者: 雷锋雷锋雷峰塔
  • 来源: 51数据库
  • 2020-08-06
or比||优先级低,除此之外,两者无区别

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

复制代码 代码如下:

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

软件
前端设计
程序设计
Java相关