I used the following subs in a program to dereference hash and array refs...
# dereference an array or an hash sub de_ref { return map { ref $_ eq 'ARRAY' ? de_aref( $_ ) : ref $_ eq 'HASH' ? de_aref( de_href($_) ) : $_ } @_; } # dereference an array ref, if any sub de_aref { return map {ref $_ eq 'ARRAY' ? (@{$_}) : ($_)} @_; } # dereference an hash ref, if any sub de_href { return map {ref $_ eq 'HASH' ? (sort values %$_) : ($_) } @_; }
...i was wondering if anybody has any comments on it. One improvment that is most obivious is using proper recursion (which i am working on (soft of)) in de_ref().
In reply to dereferencing hash & array refs by parv
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |