if (exists $hash{$key}) { if (ref $hash{$key} and ref $hash{$key} eq 'ARRAY') { push @{$hash{$key}}, $new_val; } else { my @letters_array = $hash{$key}; push @letters_array, $letters; my $new_val = [@letters_array]; $hash{$key} = $new_val; } } else { $hash{$key} = $letters; } #### my @pushed = (ref $letters && ref $letters eq 'ARRAY') ? @$letters : $letters; push @{$hash{$key}}, @pushed; #### push @{$hash{$key}}, $letters; #### for $key (keys %found_mod) { if (@{$found_mod{$key}} > 1) { print "This key -- $key -- has more than one value!\n"; } }