Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Replacing values in an array

by johngg (Abbot)
on Jan 27, 2013 at 00:05 UTC ( #1015552=note: print w/replies, xml ) Need Help??


in reply to Replacing values in an array

A slight variation on toolic's and eyepopslikeamosquito's solutions in that I use a closure to generate the odd numbers (it returns the next odd number every time it is called) and I wrap the logic for finding duplicates in a do block to avoid leaving the %seen hash lying around after it is no longer needed.

$ perl -Mstrict -Mwarnings -MData::Dumper -e ' > my $oddNos = do { > my $val = -1; > sub { $val += 2; }; > }; > > my @array = qw{ > M94202 > M94150 > M94297 > M94150 > M94161 > M94161 > M94162 > }; > > @array = do { > my %seen; > map { > exists $seen{ $_ } > ? $seen{ $_ } > : do { > $seen{ $_ } = $oddNos->(); > $seen{ $_ }; > }; > } @array; > }; > > print Data::Dumper->Dumpxs( [ \ @array ], [ qw{ *array } ] );' @array = ( 1, 3, 5, 3, 7, 7, 9 ); $

I hope this is of interest.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1015552]
help
Chatterbox?
[karlgoethebier]: Hi mario
[marioroy]: Hi karlgoethebier.
[karlgoethebier]: "Long time No See" ;-)
[marioroy]: Yes. I've been working on MCE and MCE::Shared. These are completed and released. MCE 1.830 and MCE::Shared 1.831. Saw the LWP::Simple and P::FM thread and thought to help out.

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (8)
As of 2017-09-23 15:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    During the recent solar eclipse, I:









    Results (272 votes). Check out past polls.

    Notices?