in reply to grabbing info from log after key word

I'd throw the answers in a hash: for a typical logfile, you'll get a lot of the same answers anyway:

open(LOGFILE, "$mylogfile") or die "Could not open $mylogfile: $!\n"; my %useragent; while(<LOGFILE>) { if (/Mozilla(.*)$/) { $useragent{$1}++; } } close(LOGFILE); ## Alphabetically sorted: for (sort keys %useragent) { printf "Length: %3d Frequency: %5d Name: $_\n", length $_, $useragen +t{$_}; } ## Sorted by frequency: for (sort {$useragent{$a} <=> $useragent{$b}} keys %useragent) { printf "Length: %3d Frequency: %5d Name: $_\n", length $_, $useragen +t{$_}; } ## Sorted by length: for (map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, length $_ ] } keys %useragent) { printf "Length: %3d Frequency: %5d Name: $_\n", length $_, $useragen +t{$_}; }