hashref に 0 要素が含まれているかどうかをテストする必要があります。私はこのコードを使用しました:
$self = { fld => 1 };
%h = ( "a" => "b" );
$self->{href} = { %h };
print STDERR $self->{href}{ "a" };
print STDERR "\n";
print "size of hash: " . keys( %h ) . ".\n";
print "size of hashref: " . keys( $self->{href} ) . ".\n";
perl 5.16 では問題なく動作しますが、perl 5.10 では失敗します:
Type of arg 1 to keys must be hash (not hash element) at - line 7, near "} ) "
Execution of - aborted due to compilation errors.