On Jul 10, bob ackerman said:

>and, as someone pointed out, this does work:
>$x = ['abc','def','ghi'];
>print @$x[2]."\n";       # prints 'ghi'
>
>but i couldn't tell you how perl reads this, except to say that '@$x' 
>dereferences and then '[2]' gets the array element.
>but i don't know why a '$' isn't needed to tell perl you want the scalar 
>value of that element.

Because Perl sees this:

  @{ $x }[2]

which is an array slice (of an array reference) of one element.  The $x is
merely taking the place of a name.

  @FOO[2]

is a single-element array slice; replace FOO with $x, and you get

  @$x[2]

-- 
Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
<stu> what does y/// stand for?  <tenderpuss> why, yansliterate of course.
[  I'm looking for programming work.  If you like my work, let me know.  ]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to