cat lill01.txt camel 42 pearl 94 dromedary 69 cat lill02.txt camel 8 hello 12345 dromedary 1 perl 94 perl -lane "$r{$F[0]}+=$F[1]}{print qq($_\t$r{$_})for sort{$r{$b}<=>$r{$a}||$a cmp $b}keys %r" lill01.txt lill02.txt # or shortened by one char because perl -a implies -n perl -lae "$r{$F[0]}+=$F[1]}{print qq($_\t$r{$_})for sort{$r{$b}<=>$r{$a}||$a cmp $b}keys %r" lill01.txt lill02.txt hello 12345 pearl 94 perl 94 dromedary 70 camel 50 #### perl -MO=Deparse -lane "$r{$F[0]}+=$F[1]}{print qq($_\t$r{$_})for sort{$r{$b}<=>$r{$a}||$a cmp $b}keys %r" BEGIN { $/ = "\n"; $\ = "\n"; } # provided by: perl -l LINE: while (defined($_ = readline ARGV)) { # provided by: perl -n (cycling files in a loop but Not printing lines) chomp $_; # also provided by: perl -l our @F = split(' ', $_, 0); # provided by: perl -a for Auotosplit, it puts stuff into @F automatically $r{$F[0]} += $F[1]; } # eskimo greeting.. { # ..see perlsecret print "$_\t$r{$_}" foreach (sort {$a cmp $b unless $r{$b} <=> $r{$a};} keys %r); } -e syntax OK