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

Re^3: Stupid mistakes I repeatedly make

by jhourcle (Prior)
on Mar 28, 2005 at 20:36 UTC ( [id://442946]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Stupid mistakes I repeatedly make
in thread Stupid mistakes I repeatedly make

s/something/else/ for @list;

But, how do you accomplish the same thing with map, and does it make any difference?

my @new_list = map { ( my $tmp = $_) =~ s/.../.../; $tmp  } @list;

It's useful only for those times when you don't want to corrupt the original list, for whatever reason

You could probably also do:

@list = map { s/.../.../; $_ } @list;

but you'd take a performance hit for building the list in memory, I would think. (I haven't benchmarked it).

Update: Anonymous makes a good point -- faster not to assign it back to itself. (but there is still a performance hit as compared to for/foreach, so just use one of those, and only use map if you don't want to corrupt the original).

Replies are listed 'Best First'.
Re^4: Stupid mistakes I repeatedly make
by Anonymous Monk on Mar 29, 2005 at 11:54 UTC
    If you just want to modify the list:
    map {s/.../.../} @list;
    and in modern Perls, that won't build a list in memory.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2025-07-08 14:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.