in reply to Re^2: my $a outside sort block incompatibility
in thread my $a outside sort block incompatibility

Of course you need to use the appropriate package variables. That said, I recind my suggestion in favour of the OPs use of our.

Not because of any problem with the use of qualified package vars, but because against my expectations, it runs far more quickly. Indeed, unless someone can show me the flaw in my benchmark, I'll be explicitly including our( $a, $b) in all my sorts from now on:

#! perl -slw use strict; use Benchmark qw[ cmpthese ]; cmpthese -10, { "\$a<=>\$b" => q[my @a = sort{ $b <=> $a } 1 +.. 1e6;], "\$::a<=>\$::b" => q[my @a = sort{ $::b <=> $::a } 1 +.. 1e6;], "our(\$a,\$b)" => q[my @a = sort{ our( $a, $b ); $b <=> $a } 1 +.. 1e6;], }; __END__ C:\test>junk2.pl s/iter $::a<=>$::b $a<=>$b our($a,$b) $::a<=>$::b 2.09 -- -0% -77% $a<=>$b 2.08 0% -- -77% our($a,$b) 0.469 344% 343% --

UPDATE: I guess it really is time to upgrade. Under 5.10 I get much closer to what I expected:

Rate our($a,$b) $a<=>$b $::a<=>$::b our($a,$b) 1.75/s -- -46% -46% $a<=>$b 3.24/s 85% -- -0% $::a<=>$::b 3.24/s 86% 0% --

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: my $a outside sort block incompatibility
by tilly (Archbishop) on Feb 21, 2009 at 15:34 UTC
    Interesting. I would assume that is because it is more efficient to access a lexical than a package variable.
Re^4: my $a outside sort block incompatibility
by massa (Hermit) on Feb 21, 2009 at 17:28 UTC
    you know you can sort { our $a <=> our $b } @x, huh? :-) IMHO it's prettier...
    []s, HTH, Massa (κς,πμ,πλ)