clsung’s blog site, or you can call me AlanSung
為了某個原因,要對兩個變數做 XOR 的檢查,除了這個之外不知道有沒有更好的寫法:
return 0 if (!defined($lvalue) and !defined($rvalue)); return 1 if (!defined($lvalue) or !defined($rvalue)); return ($lvalue ne $rvalue); }
檢查:
結果:
註,空行是 false,也可以說是 0。
2007/12/10:一直忘了補上 gugod 的版本:
五月 14th, 2007 | Tags: perl | Category: perl | Subscribe to comments | Leave a comment | Trackback URL | Visited (1/2427) times
我第一個想到的是直接 return (shift ^ shift) ? 1 : 0; 不過最後一個 case 會爆 :p
另外一個做法是 return “$lvalue” ne “$rvalue” 這樣應該行吧? :p
這樣應該會有 warning… 如果是 undef 的 value …
sub _IsXOR { return (shift||0) ^ (shift||0); }
Name (required)
Mail (will not be published) (required)
Website
五月 14th, 2007 at 9:40 pm
我第一個想到的是直接 return (shift ^ shift) ? 1 : 0;
不過最後一個 case 會爆 :p
另外一個做法是 return “$lvalue” ne “$rvalue”
這樣應該行吧? :p
五月 14th, 2007 at 11:34 pm
這樣應該會有 warning… 如果是 undef 的 value …
八月 11th, 2007 at 10:27 pm
sub _IsXOR {
return (shift||0) ^ (shift||0);
}