Operation “eq”: no method found,

Perl Add comments

Perlでエラーのお話。

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

if( $temp eq 'asdf' ){}


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

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


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

print ref $temp;


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

XML::LibXML::NodeList


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

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン