in reply to Re: disadvantages of perl
in thread disadvantages of perl
There's no need to write it like that. 'ref' never returns an undefined variable. You may write this as:if ( defined $r && ref $r && ref $r eq 'HASH' && keys %$r ) { ... }
Or, after turning off the appropriate warning:if (ref($r || "") eq 'HASH' && keys %$r) { ... }
which isn't too bad.if (ref $r eq 'HASH' && keys %$r) { ... }
Note that it won't enter the block if $r is a blessed hash, but that I consider a feature. (Otherwise, replace ref with Scalar::Util::reftype).
In Section
Seekers of Perl Wisdom