E:>perl -ne "BEGIN{my %stuff = ()}; @items=split q|: |; $stuff{$items[0]} += $items[1]; END{for(keys %stuff){print qq|$_:$stuff{$_}\n|}};" fakedata.dat blue:45 red:27 green:311 yellow:114