2014-02-20 170 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糾正。 –