Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Order-Preserving and Unique: List Cleanup

by hossman (Prior)
on Jul 30, 2003 at 06:58 UTC ( #279095=note: print w/ replies, xml ) Need Help??


in reply to Order-Preserving and Unique: List Cleanup

As to the issue of poor performance due to psuedohash overhead, that just isn't a factor in my thinking. Because the lists of things to be processed by this code will seldom exceed, say, 20 or so, it simply doesn't seem worthwhile to get worked up over the performance aspect. Convenience and these other preferences I've listed weigh in far more for me.

If that's the case, then why not just use the (much simpler, and easier to read) solution from this reply to the orriginal thread...

my %seen =() ; @unique_array = grep { ! $seen{$_}++ } @non_unique_array ;

Or, to make a one liner like yours...

perl -e '@a = $ARGV[0]? @ARGV : (<STDIN>); chomp @a; print join "\n", + grep { ! $s{$_}++ } @a;' $*


Comment on Re: Order-Preserving and Unique: List Cleanup
Select or Download Code
Re: Order-Preserving and Unique: List Cleanup
by Intrepid (Deacon) on Jul 30, 2003 at 09:01 UTC
    If that's the case, then why not just use the (much simpler, and easier to read) solution from this reply to the orriginal thread...
    my %seen =() ;
    @unique_array = grep { ! $seen{$_}++ } @non_unique_array ;

    Oh my, that is nicer! Well, that's what's great about Perl Monks. I think I may not have understood the thread referred to: I thought there was some issue with this solution where it would fail in some case. If I misunderstood, thanks for setting it straight for me!

    Update (Wed Jul 30 2003 18:02 UTC):

    So the rendition of this code which can act like a *NIX filter as well as handle input as @ARGV, is (using -l to put a final NL on):

    *nixprompt$ perl -le ' my %seen = (); my @ayin = $ARGV[0]? @ARGV : (<STDIN>); chomp @ayin; print join "\n", grep { !$seen{$_}++ } @ayin;'

    Beautiful!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://279095]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2014-11-28 16:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (199 votes), past polls