Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Get All Duplicated Elements in an Array (Once, without shifting)

by Flexx (Pilgrim)
on Oct 15, 2002 at 00:02 UTC ( [id://205254]=note: print w/replies, xml ) Need Help??


in reply to Get All Duplicated Elements in an Array (Once, without shifting)

Of course, ++merlyns post shows what an elegant solution is... So that's the cute idiom you where asking for!

Assuming you /can|want/ not process the duplicates right away, you could save memory by omitting the extra array @out. When you go over the array for the fist time, do the counting, then do the processing separately:

my @in = qw(test foo test bar baz foo test); my %keycount; foreach (@in) { $keycount{$_}++; # do whatever else you need to do } foreach (keys %keycount) { #print $_ if $keycount > 1; print if $keycount{$_} > 1; # Thx, ++Aristotle! # or do something else with $_ }

So long,
Flexx

Replies are listed 'Best First'.
Re^2: Get All Duplicated Elements in an Array (Once, without shifting)
by Aristotle (Chancellor) on Oct 15, 2002 at 08:32 UTC
    That is, of course, print if $keycount{$_} > 1;

    Makeshifts last the longest.

      Yikes!!! Caught me with my pants way down... (you caught me back, I guess ;)

      But, it works if there are no duplicates! Umm... 8)

      Cheers,
      Flexx

      Update: struck a potentially offensive joke, that wasn't meant to be such.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-24 05:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found