in reply to Re: Re: Re: Re: Re: Unique array w/o repeated elements and still keep the original order!
in thread Unique array w/o repeated elements and still keep the original order!
Or something similar. It might not be the best way to do it, but it has one advantage...my %seen; my @unique = grep {not $seen{$_}++} <FILE>; chomp @unique;
It has nothing to do with using %_. It's mostly because i'm very wary of changing $_ in map, especially since i recently got very burned by attempting such a thing...
jynx
update: at prompting, i'll mention that one could write that as:
however, i think that would iterate twice as well. Then again there's that point about premature optimization... ;-)my (%seen, @unique); chomp( @unique = grep {not $seen{$_}++} <FILE> );
Update 2: after doing a benchmark, i've found that the map solution is the fastest, followed by the one-line chomp and last is the two-liner. The one-liner is sufficiently fast enough that i would still prefer it, although for readability and maintainability i might still go with the two line version. To each their own...
Thanks demerphq for the learning experience... :-)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re^6: Unique array w/o repeated elements and still keep the original order!
by demerphq (Chancellor) on Aug 09, 2002 at 21:28 UTC |