# Case 1: don't count unwanted characters for my $char(@letters) { ++$charCount{$char} if $char !~ /[a-zA-Z]/; } # Case 2: delete unwanted characters my %t = %charCount; $t{$_}=$charCount{$_} for grep {/[a-zA-Z]/} keys %charCount; %charCount=%t; # Case 3: ignore unwanted items during report for my $char (sort keys %charCount) { next unless $char =~ /[a-zA-Z]/; # print report entry }