in reply to Re: Re: Pseudo-switch question
in thread Pseudo-switch question

It is good that you considered that type of problem, but in this case, it is harmless.

My rule of thumb is that when using a for/foreach loop, you do not need to localize $_, but if you are using a while(<>) loop, you must localize it.

This is because the for/foreach loop is already doing the local step for you, but it is the only time that this happens.

Replies are listed 'Best First'.
Re: Re: Re: Re: Pseudo-switch question
by pemungkah (Priest) on Oct 14, 2003 at 21:28 UTC
    You are indeed correct. I've just gotten into the habit of localizing globals when I'm about to alter them, and I want to be sure I didn't sabotage someone else up the line.

    I tend to assume that someone else reading the code might not think about $_ being global, alter the code so that $_ would get clobbered, and then be confused. If I've localized $_, and also commented why I've done it, it makes it easier to maintain. And I'm all about maintaining.

    I suppose the Right Thing would be to not localize and comment that the for loop does it for me. :)