这些子程序中哪一个不像另一个?
sub or1 { my ($a,$b) = @_; return $a || $b; } sub or2 { my ($a,$b) = @_; $a || $b; } sub or3 { my ($a,$b) = @_; return $a or $b; } sub or4 { my ($a,$b) = @_; $a or $b; }
我从C和Perl 4来到Perl 5,总是使用||直到我看到更多的脚本使用或和我喜欢它的样子。但是正如上面的测验所示,它不是没有它的缺陷为不道德的。对于使用这两个结构或者使用很多的人,或者,你使用什么经验法则来决定使用哪个结构,并确保代码正在做你认为它正在做什么?
解决方法
由于’or’运算符的低优先级,or3解析如下:
sub or3 { my ($a,$b) = @_; (return $a) or $b; }
通常的建议是只使用’或’运算符作为控制流:
@info = stat($file) or die;
有关更多讨论,请参阅perl手册:http://perldoc.perl.org/perlop.html#Logical-or-and-Exclusive-Or
原文地址:https://www.jb51.cc/Perl/173242.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。