in reply to Re: variables allowed inside iterative loops in regular expressions?
in thread variables allowed inside iterative loops in regular expressions?

$a and $b can be declared lexically and then will have whatever value is assigned to them, if any. They don't have to be package variables (though they are if they haven't been assigned to). Still, I agree that it's a good idea not to use these variables. Of course, $x and $y might not be very descriptive, depending upon how they are used :)

Cheers,
Ovid

Join the Perlmonks Setiathome Group.
New address of my CGI Course.

  • Comment on Re: Re: variables allowed inside iterative loops in regular expressions?

Replies are listed 'Best First'.
Re: Re: Re: variables allowed inside iterative loops in regular expressions?
by dvergin (Monsignor) on Nov 06, 2002 at 20:25 UTC
    Been there. Paid the price. No t-shirt.

    Let me suggest the advice to newbies be stronger than "it's a good idea not to".

    Yes, $a and $b can be declared lexically and they work fine. But this trashes their subsequent use in a sort within the same scope.

    I wasted half a day recently trying to debug a failing sort. After much gnashing of teeth I finally discovered that $a and $b had been declared and used at an earlier stage in the routine. I changed $a and $b to meaningful names and the later sort ran fine.

    My advice: Just say no to "my ($a, $b);" It will work fine in the immediate context but some time in the future you or someone else may decide to sort something at a later point in the same scope -- and there will be much needless weeping and wailing until you discover the problem.