Saying a feature is essential to syntax doesn't prove it's not syntactic sugar. If anything, it proves that it is.
If a feature is syntactic sugar, it means the feature adds an alternate syntax rather than adding functionality.
Since
sub foo(\@@); foo(@a, 'x');
and
sub foo; foo(\@a, 'x');
are equivalent, prototypes are syntactic sugar.
| [reply] [d/l] [select] |
let's get back to the roots:
> > You never pass an array or hash, just references to them. It's not even possible to pass arrays or hashes to subroutines.
> Thats a matter of interpretation,
The closest you can get to "passing an array" in perl is to pass the arr_ref. Thats my interpretation of passing, (and not only mine)
So what do you mean with "It's not even possible to pass arrays or hashes to subroutines." What else could be considered passing an array, which is not possible in perl???
| [reply] |
What else could be considered passing an array, which is not possible in perl???
You've equated passing with sending (push @a), but that's only half it. For something to be passed successfully, it must also be received.
Many languages (including C++, various BASIC derivatives and Java) allow arguments that are arrays. Perl isn't one of them. One must usually go through the extra step of getting a reference in the caller, and one always must go through the extra step of dereferencing in the callee.
The closest you can get to "passing an array" in perl is to pass the arr_ref. Thats my interpretation of passing, (and not only mine)
It seems I have to repeat myself. I'm not disputing that foo(\@a) can also be considered passing an array, but that's off topic.
Whatever you want to call it, $_[0] will never be an array. Therefore, \$_[0] will never be a reference to an array.
My point was that while you were saying that references to arrays do one thing and references to scalars do another, the code you were using only dealt with references to scalars.
What's your point? I don't see how any of what you've said concerning passing arrays relates to the subject at hand.
| [reply] [d/l] [select] |