Don't ask to ask, just ask | |
PerlMonks |
Re:x3 Using $_ as a temp var, especially in functionsby grinder (Bishop) |
on Oct 23, 2002 at 13:19 UTC ( [id://207379]=note: print w/replies, xml ) | Need Help?? |
If I had the chance, I would rewrite some_sub to work on lists, which would allow me to say my @result = some_sub(qw(a b c d));But I will grant you that that is a somewhat facetious answer, as I understand your question to mean an arbitrarily complicated map code block and not something as simple. But then were the map code block arbitrarily complicated, I would no longer be using map, but instead I would be using for, which would make the code look like:
On the Principle of Least Surprise, by and large I tend to put unsurprising code in maps and greps. That rules out function calls and other invisible things that might play around with $_. for blocks do not suffer from these problems because you can name your own topicalizer (or whatever it's called) with the for my $topic construct. If you stick to this, you can't be bitten by the types of problems you describe. <update> if you have code running around secretly overloading the + operator, then clobbering $_ is likely the least of your problems. Just because you can write code that dicks around with $_, doesn't mean you should. We'll just have to agree to disagree. Your point is valid and I find no fault with it, I just see things differently.</update> print@_{sort keys %_},$/if%_=split//,'= & *a?b:e\f/h^h!j+n,o@o;r$s-t%t#u'
In Section
Meditations
|
|