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

Dr Manhattan has asked for the wisdom of the Perl Monks concerning the following question:

Hi all

I have a input file with some data that I have to sort trough which looks like this(this is just some short silly example)

hello 1234 5698 7458 hi 1457 7459 6214 good_day 1458 hi 1258 3658 good_morning 4758 hi 1453

I need to remove every element where the first word(first part of array element) appears twice or more in the array, so in this example the three elements starting with 'hi...' needs to be removed, even though the entire element is not identical.

I tried this but it is not working. Any ideas or easier ways to do this?

my $length = $#array; my $woord1; my $woord2; for (my $q = 0; $q <= $length; $q++) { if ($array[$q] =~ /^(\w+|\_)(\s)(\d{4})/) { $woord1 = "$1"; for (my $x = $length-1; $x == 0; $x--) { if ($array[$x] =~ /^(\w+|\_)(\s)(\d{4})/) { $woord2 = "$1"; if ("$woord1" eq "$woord2") { print "$woord1\t$woord2\n are the same"; delete $array[$x]; } } } } }

Thanks in advance for any help