@oldstock = ("widgets:10:5", "wodgets:4:2", "spanners:5:3"); @newstock = ("screwdrivers:8:3", "hammers:5:1", "widgets:3:1"); #### @totalstock = ("widgets:13:6", # Both widget entries joined "wodgets:4:2", "spanners:5:3", "screwdrivers:8:3", "hammers:5:1"); #### my %stock = (); my %shown = (); # Build our records foreach my $record (@newstock @oldstock) { my ($name, $stock, $shown) = split(/:/$record); $stock{$name} += $stock; $shown{$name} += $shown; } # Print the result. foreach my $name (keys %stock) { print join(":",$name,$stock{name},$shown{name}),"\n"; }