Data::Util
Data::Utilはデータの型チェックに使えるUtility。List::MoreUtilsと合わせ技すると強力かな。
use Data::Util qw(:check); use List::MoreUtils qw(all); check(+{test=>1}, [1,2,3], 1); sub check { my @args = @_; unless (all { is_hash_ref($_) || is_array_ref($_) } @args) { print "error!\n"; } }
これだけだとref($foo) eq 'Hash'との違いをあまり感じないけどis_instanceとか使うと便利だろうなー