http://www.perlmonks.org?node_id=1046981


in reply to Removing certain lines from array

How about this approach:
my @array = ( "hello 1234 5698 7458", "hi 1457 7459 6214", "good_day 1458", "hi 1258 3658", "good_morning 4758", "hi 1453", ); # count all occurences my %freqs; for my $elem (@array) { my ($word) = $elem =~ /^(\w+)/; $freqs{$word}++; } # remove all multifrequent words my @new_array; for my $elem (@array) { my ($word) = $elem =~ /^(\w+)/; unless ($freqs{$word} > 1) { push @new_array, $elem; } }
edit: corrected - element needs to be removed