2014-02-20 133 views
0
#!/usr/bin/perl 

$v = "test"; 
$v |= "best"; 
print $v; 
$v = "test" | "best"; 
print $v; 

如何OR-ING即将在这里是不是在第二种情况下清晰(第一种情况与空O形环似乎是清楚的)?perl的逻辑或运算

+0

您可能对此感兴趣:http://perldoc.perl.org/perlop.html#Logical-Defined-Or – squiguy

+4

你能解释一下什么是不明确?注意'|'和'| ='不是逻辑或运算符,它们是按位或运算符,完全是另一回事。 – ysth

回答

4

|是逐位operator和你wan't短路字符串变量,从而使用逻辑OR ||

$v ||= "best"; 

逐位计算第一字符"t" | "b"是相同

#    116 | 98  = 118 ("v") 
print chr(ord("t") | ord("b")); 
+0

两者都是二进制(取两个参数)的运营商,既不一元(以一个参数)。我认为你的意思是“|”是一个按位运算符(按位或),而“||”是一个逻辑运算符(逻辑或)。 –

+0

@DaveSherohman tnx纠正。 –