加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl xor返回意外结果

发布时间:2020-12-16 06:09:54 所属栏目:大数据 来源:网络整理
导读:这里发生了什么?为什么不是$c == 1? $cat y.pl#!/usr/bin/perl$a = 0;$b = 1;$c = $a xor $b;print "$a ^ $b = $cn";$./y.pl 0 ^ 1 = 0 解决方法 一直用 use strict;use warnings qw( all ); 它会检测到您的优先问题. Useless use of logical xor in void
这里发生了什么?为什么不是$c == 1?

$cat y.pl
#!/usr/bin/perl
$a = 0;
$b = 1;
$c = $a xor $b;
print "$a ^ $b = $cn";

$./y.pl 
0 ^ 1 = 0

解决方法

一直用

use strict;
use warnings qw( all );

它会检测到您的优先问题.

Useless use of logical xor in void context

特别,

$c = $a xor $b;

手段

($c = $a) xor $b;

运算符和,或者,而不是和xor的优先级非常低.这对流量控制起作用,或者对流量控制非常有用.

... or die ...;
... or next;

xor不会短路,因此对流量控制没有用. xor是出于完全不同的原因而创建的.喜欢或者,xor是一个逻辑运算符.这意味着将整个操作数的真实性视为整体而不是逐位比较.我不相信这是你想要的操作.

固定:

$c = $a ^ $b;
Low
                                    Precedence
Operation   Bitwise     Logical     Logical
----------  ----------  ----------  ----------
NOT         ~           !           not
AND         &           &&          and
OR          |           ||          or
OR*         N/A         //          N/A
XOR         ^           N/A         xor

OR* - Like OR,but only undefined is considered false.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读