VSarkiss has asked for the wisdom of the Perl Monks concerning the following question:
I got my code to work, so the question is academic at this point, but I'm wondering why it worked the way it did....
I'm calling a sub in a module that returns an array ref, and I wanted three elements out of the array as a slice. So I did this:
Well, all that produced was a warning that Argument "" isn't numeric in aelem at ...$r = $dbh->r_sql(...); my @s = $r->[1..3];
While using my tried-and-true debugging method of "change something, try it again", I actually looked up perlref and noted that -> is just for individual elements of array refs. So I tried this:
It worked fine, but it sure looks awful.$r = $dbh->r_sql(...); my @s = @$r[1..3];
So, the question: Why can I get a single element from an array ref with ->, but not a slice? Is there a deeper reason or just parser capriciousness?
I'm using 5.005_02 on HP-UX, if it matters.
TIA
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Extracting a slice from an array ref
by dragonchild (Archbishop) on Aug 15, 2001 at 02:24 UTC | |
|
Re: Extracting a slice from an array ref
by nietzel (Novice) on Aug 15, 2001 at 05:43 UTC | |
by chipmunk (Parson) on Aug 16, 2001 at 00:11 UTC | |
|
Re: Extracting a slice from an array ref
by Ven'Tatsu (Deacon) on Aug 15, 2001 at 10:24 UTC | |
|
(tye)Re: Extracting a slice from an array ref
by tye (Sage) on Aug 15, 2001 at 19:22 UTC |