in reply to Re^3: Reference to sort results
in thread Reference to sort results
Thanks ssandv, that is really interesting. Could you tell me a little more?
If I had an array, and wanted a reference to that exact same data, I would do this...
$aref = \@array;
Whereas, if I do this...
$aref = [ @array ];
...Perl copies the contents of @array into a new anonymous array, then makes $aref a reference to the new one, right? So in this case @array and @$aref are entirely separate arrays.
This is why I think:
$aref = [ sort ... ];
Would produce an array as the result of sort, copy that result into the new array implied by the brackets, give me a reference to the second array, and abandon the first one. It is not obvious whether Perl is smart enough to know that would be a waste of time.
Furthermore, you say sort returns a list, not an array. As far as I am aware, Perl makes no explicit difference between the two, because its array data type can be used as an ordered list, so what do you mean by this?
Thanks again for the help. I have been trawling the web but can't find anything which is clear on these points. I guess most people just don't worry about it!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Reference to sort results
by ssandv (Hermit) on Aug 06, 2009 at 15:18 UTC | |
|
Re^5: Reference to sort results
by Marshall (Canon) on Aug 07, 2009 at 00:09 UTC | |
|
Re^5: Reference to sort results
by omnifish (Initiate) on Aug 10, 2009 at 09:45 UTC |