在阅读最新版本的The Camel Book时,我被 p522 上的以下代码片段所震撼:
use Fcntl ":flock";
eval {
local $SIG{ALRM} = sub { die "alarm clock restart" };
alarm 10; # schedule alarm in 10 seconds
eval {
flock(FH, LOCK_EX) # a blocking, exclusive lock
|| die "can't flock: $!";
};
alarm 0; # cancel the alarm
};
alarm 0; # race condition protection
die if $@ && $@ !~ /alarm clock restart/; # reraise
有人告诉我,您应该始终使用低优先级的逻辑 OR 运算符“或”,而不是逻辑 OR 运算符“||”。
在本书中进一步看,我看到许多其他使用相同逻辑的示例。
规则或优先级是否发生了变化?
还是'||'的处理 和“或”在更高版本的 Perl 中发生了变化?(不幸的是,由于遗留代码,我们被焊接到 5.6.1 atm)。