in reply to Re^3: Parsing output from Nmap::Scanner with varying hash address.
in thread Parsing output from Nmap::Scanner with varying hash address.

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

Replies are listed 'Best First'.
Re^5: Parsing output from Nmap::Scanner with varying hash address.
by Laurent_R (Canon) on Jul 11, 2015 at 22:27 UTC
    Yeah, right, Ken, I did not think about it, but yes, removing the useless quote marks is also making the syntax much shorter (and cleaner in my view). ++.