http://qs321.pair.com?node_id=521540

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

Hello Monks, I've been stumped by a little problem. I have a subroutine RDup ( remove duplicates )
sub RDup { my @arrays = sort @_; my @temp = (); my %Seen = (); foreach my $elem(@arrays) { next if $Seen{$elem}++; $elem = join(" ", split " ", $elem); push @temp, $elem; } return @temp; }
This sub takes in an array, obvisously. If I creat an array @t1 = ("z", "a", "r", "a", "a"); It sorts and removes the duplicate entries file. But I have some code that is searching for dll names and if found, pushes it on an array.
foreach $d(@dllExeLines) { if( $d =~ m/$serviceName/ ) { foreach $f( split /,/, $d ) { if( $f =~ /$dll/igcgxm ) { push @unique, $dll; } } } } RDup(@unique);
When I pass in @unique, the duplicates are not removed. What am I doing wrong, and not understanding here in Perl. There must be a difference in what is placed on an array. I've tried everyting I can think of, but nothing works. Thanks.