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; }