Perlの==とeq 簡単な実験をしてたら、勘違いが判明。Perlではリファレンスを文字列として扱うと、"変数型(ポインタ)“みたいな値になる。 C:\> perl -e "$h = {}; $s = qq($h); print qq($h, $s);" HASH(0x275ea0), HASH(0x275ea0)じゃあ、これをeqと==で比較したらどうなるか。「Perlで文字列を比較する時は==じゃなくeq」というのは良く知られてると思う。==で文字列を比較すると、何でもかんでも一致してしまう。例えば、以下の例では空文字列と'abcd'が一致とか、結構ずいぶん。 C:\>perl -e "print ('' == 'abcd' ? 'equal' : 'not equal');" equalこれがeqで比較するとnot equalになるので、てっきり「==は同値、eqは型まで一致」とチェ