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 )
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.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; }
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.foreach $d(@dllExeLines) { if( $d =~ m/$serviceName/ ) { foreach $f( split /,/, $d ) { if( $f =~ /$dll/igcgxm ) { push @unique, $dll; } } } } RDup(@unique);
Back to
Seekers of Perl Wisdom