Jonathan Scott Duff wrote:
>
> On Wed, Apr 03, 2002 at 12:41:13PM -0500, John Siracusa wrote:
> > Reading EX4 and seeing those "place-holder" variables made me wonder what
> > happens when someone (probably Damian ;) wants to use more than 26 of them.
> > Do the place-holder names scale up as if they're being automagically
> > incremented? (e.g. ..., y, z, aa, ab, ...)
>
> Hmm. I was just reading on use.perl.org and Damian said this:
>
> Magic $^ variables are only magic in that they allow a
> subroutine to be declared without an explicit sub keyword or an
> explicit parameter list. Instead, their parameter list is
> constructed implicitly: it's just the alphabetically sorted list
> of the names of all the magic $^ variables within the block.
>
> So I may be wrong about { $^foo * $^bar } being equivalent to
> {$^a * $^b }.
>
> Waiting for the Damian or the Larry to chime in ...
<bing!>
The closure:
{ $^foo * $^bar }
is equivalent to:
sub ($^bar, $^foo) { $^foo * $^bar }
So you're right about being wrong about the equivalence.
The $^ variables are sorted ASCIIbetically in the implied parameter list.
Which is why:
sort { $^b <=> $^a } @list
DWIMs.
Damian