Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^3: Stupid mistakes I repeatedly make

by jhourcle (Prior)
on Mar 28, 2005 at 20:36 UTC ( #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).


Comment on Re^3: Stupid mistakes I repeatedly make
Select or Download Code
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
Node Status?
node history
Node Type: note [id://442946]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (16)
As of 2015-07-28 17:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (258 votes), past polls