Operation “eq”: no method found,

Perlでエラーのお話。

“eq”は別の予約語の場合もあり。
例えば、

if( $temp eq 'asdf' ){}


という、何の変哲も無い比較を行うときに出現するエラー。
これを回避するには、

if( "$temp" eq 'asdf' ){}


とすればいいのだけれど、これは$tempが純粋なスカラーでない場合に発生する。
つまり、

print ref $temp;


この場合、リファレンスを調べるとSCALARではないとき。
自分がよく遭遇するのは、

XML::LibXML::NodeList


のとき。
スカラーが帰っていると思い込んでいると、たまに痛い目にあいます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です