in reply to variables allowed inside iterative loops in regular expressions?

Works for me.

However, remember that $a and $b are package variables, so if you're executing this code in a different package than where $a and $b got the values you want them to have, it probably won't work.

On the other hand, you might try using explicitly declared lexical variables, like $x and $y, and see if that makes a difference.

Can you post more code?

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

Replies are listed 'Best First'.
Re: Re: variables allowed inside iterative loops in regular expressions?
by Ovid (Cardinal) on Nov 06, 2002 at 19:13 UTC

    $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.

      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.