in reply to multiple arrays and lists

As DamnDirtyApe says, you probably want to use a hash instead of arrays 3 and 4. A hash lets you associate a value with a 'key', so if we have a hash called %hash we can set $hash{steve} = 2 for example. You should set up the hash then loop over the arrays. For each entry in the arrays use the name as the key to the hash and add the value in array2 to this entry in the hash. My program doesn't really add much to DamnDirtyApe's except that using Data::Dumper to print a small hash seems like overkill.
# The two arrays are in @arr1 and @arr2 my %hash; # loop over the arrays for (0..$#arr1) { # Add the value from arr2 to the approprate entry in # the hash $hash{$arr1[$_]} += $arr2[$_]; } foreach (keys(%hash)) { print "$_ $hash{$_}\n"; }