ある変数がオブジェクトがどうか調べる方法
Scalar::Util というモジュールを使うと、ある変数がオブジェクトなのか、ただの変数なのか調べることができます。
use Scalar::Util qw(blessed); # こんな長くて可読性の悪いコードが if ( ref($data) and grep( $_ ne ref( $data ), qw(ARRAY SCALAR HASH) ) ) { } # こうなります if ( blessed( $data ) ) { }
Scalar::Util には他にも有用なメソッドがたくさんあるので、覚えておいて損はしません。