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

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

두 번째 경우에는 OR-ing이 어떻게 나오는지 명확하지 않습니다 (첫 번째 경우는 null 인 것과 같습니다).perl 논리 OR 연산자

+0

당신은 수도와 동일 http://perldoc.perl.org/perlop.html#Logical-Defined-Or – squiguy

+4

명확하지 않은 것을 설명 할 수 있습니까? '|'와'| ='는 논리 연산자 나 연산자가 아니며, 비트 연산자 나 연산자입니다. 완전히 다른 것입니다. – ysth

답변

4

|는 비트 operator 그리고 당신은 따라서 변수에 단락 문자열로 wan't 논리적 사용 또는 ||

$v ||= "best"; 
첫번째 문자 "t" | "b"에 대한

비트 단위 계산

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

둘 다 바이너리 (두 개의 인수 사용) 연산자이며 단항 (하나의 인수 사용) 연산자도 아닙니다. 나는 당신이'|'가 비트 연산자 (비트 OR)이고'|| '가 논리 연산자 (논리 OR)임을 의미했다고 생각합니다. –

+0

수정을 위해 @DaveSherohman tnx. –