Well I was about to post a clarification of
cfreak's node, but
sgifford beat me to it, so I'll just add that
map returns a list, so to avoid making perl do all that work for nothing (and not bothering to put a variable in quotes where no interpolation is needed), I'd use:
print "before $_\n" for @instances;
screwed $_ for @instances;
print "after $_\n" for @instances;
Of course
for also aliases array elements to $_, so this will still suffer from the same thing that caught you unless you use the
local $_ in your sub. As a matter of (possibly paranoid) habit I tend to avoid the various implicit uses of $_ in code that I expect to keep any length of time. While it's extremely handy for one-liners, it's just not worth the potential trouble in more complex code.
--
I'd like to be able to assign to an luser