Removing most of the '->'s is a good idea. You could also remove 26 single-quotes (around all the literal key names) and a pair of double-quotes. Splitting the assignment over two lines gives a maximum line length of 80 characters (previously 156). I think that provides additional readability.
my %shortlist; for my $key (keys $results->{ALLHOSTS}) { for my $key2 (keys $results->{ALLHOSTS}{$key}{ports}{tcp}) { $shortlist{$results->{ALLHOSTS}{$key}{ports}{tcp}{$key2}{servi +ce}{name}} = $results->{ALLHOSTS}{$key}{ports}{tcp}{$key2}{state}; } }
[Note: as I'm editing untested code, mine is also untested.]
Update: I've also added spaces before the opening braces of the for blocks: I think that makes those a little clearer.
-- Ken
In reply to Re^4: Parsing output from Nmap::Scanner with varying hash address.
by kcott
in thread Parsing output from Nmap::Scanner with varying hash address.
by mopmeat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |