#!/usr/bin/perl use strict; use warnings; my %myhash; open my $fIn, '<', $ARGV[0] or die "could not open '$ARGV[0]': $!\n"; while (defined (my $line = <$fIn>)) { my ($word, $value) = $line =~ m/(\w+):(-?\d+)/; $myhash{$word} += $value; } while (my ($key, $value) = each %myhash) { print "$key: $value\n"; } #### green: 311 blue: 45 red: 27 yellow: 114