On Sun, Apr 13, 2008 at 4:12 PM, John W. Krahn <[EMAIL PROTECTED]> wrote: snip > > > push @bad, "$3_$5_$4_$6_$2_$1"; > > > > > snip > > > > I believe they would come out roughly the same in terms of > > performance, but, in general, I don't trust $1, $2, etc outside of a > > substitution. I have been bitten by interrupts that modified/cleared > > them before. > > > > You snipped out the part where I changed s{}{} to m{}. snip
That is because it is irrelevant. Of course, it is a match not a substitution, you don't tend to use $1, $2, etc. after a substitution. My issue is with the use of a match followed by the use of $1, $2, etc. Code can execute between the match and the interpolation (think signal handler). That code can (and at least once has in my case) change or reset $1, $2, etc. Therefore, I no longer trust $1, $2, etc. outside of a substitution. I tend to say things like my ($foo, $bar, $baz) = /(\S+)\s+(\S+)\s+(\S+)/; instead. This also has the benefit of being self-documenting (if you name the variables correctly). -- Chas. Owens wonkden.net The most important skill a programmer can have is the ability to read. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/