in reply to Re: I'm looking for some 'heavy magic'
in thread I'm looking for some 'heavy magic'

Howdy!

Not quite.

The actual examples in perldelta are:

@x->[2] scalar(@x)->[2]
"@$ref->[0]" can be parsed as @{$ref->[0]}, where $ref refers to an array whose first element is an arrayref.

yours,
Michael

Replies are listed 'Best First'.
Re: Re: Re: I'm looking for some 'heavy magic'
by Anonymous Monk on Jan 25, 2002 at 10:56 UTC
    Nuh-uh!

    @$ref->[0] can be parsed as @{$ref->[0]}

    That's not what's happening.

    From perlref:
    Because of being able to omit the curlies for the simple case of $$x, people often make the mistake of viewing the dereferencing symbols as proper operators, and wonder about their precedence.

    Example code:
    use strict; my $r = [qw/foo bar/]; print $r->[0]; # 'foo' print @$r->[0]; # 'foo', due to bug. print @{$r->[0]}; # Can't use string ("foo") as an ARRAY ref...
    I bet that you've several times have heard "use references as variable names". That is a good way to describe references, and it works here too. Having $r = \@x, @$r->[0] will be the same as @x->[0]. So it is indeed the same issue as in perldelta.