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 | |
by Flexx (Pilgrim) on Oct 15, 2002 at 17:16 UTC |
In Section
Seekers of Perl Wisdom