On Wednesday, July 10, 2002, at 09:29 AM, George Schlossnagle wrote:
>> and, as someone pointed out, this does work: >> $x = ['abc','def','ghi']; >> print @$x[2]."\n"; # prints 'ghi' > > > Am I alone in thinking that $x->[2] is much more readable that @$x[2] > or $$x[2]? i was only saying that it was allowable. not that is desirable to do it that way. i agree with your preference. > >> >> 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. > > @$x[2] works the same way that if you have > > @b = ('abc','def','ghi'); > print "@b[2] == $b[2]\n"; > > @b[2] is an array slice with a single element (which strangely seems to > get auto-cast as a scalar). > except i get a warning on this use: @y = ('a','b','c'); print @y[2]."\n"; >Scalar value @y[2] better written as $y[2] at ./tst line 4. >c i don't get that warning when it is an array ref. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]