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:
in reply to opening a file destroys nulling entries in a list?!?!
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.
print "before $_\n" for @instances;
screwed $_ for @instances;
print "after $_\n" for @instances;
I'd like to be able to assign to an luser