in reply to Re^2: I fear my code is unreadable
in thread I fear my code is unreadable
Well, you could go with
use constant PADDING => 2; my $col_width = PADDING + ( sort { $b <=> $a } map { length } keys %list, map { @$_ } values %lists )[ 0 ]; ## Longest key or value
But in
use constant PADDING => 2; my $col_width = PADDING + ( sort { $b <=> $a } map { length } map { ref ? @$_ : $_ } %lists )[ 0 ]; ## Longest key or value
The line ref eq 'ARRAY' ? @$_ : $_ just says: if it($_) is a value (array) flatten it to a list, (which you already had in your own version), or if it is a key, pass it through untouched.
That avoids having to treat the keys and values separately, (and iterate the hash twice to generate them). In doing so it reduces the noise level a little further.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: I fear my code is unreadable
by Boldra (Curate) on May 06, 2008 at 15:46 UTC |