Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^3: Sort command equivalent in perl

by BrowserUk (Pope)
on Dec 16, 2011 at 17:21 UTC ( #943989=note: print w/replies, xml ) Need Help??

in reply to Re^2: Sort command equivalent in perl
in thread Sort command equivalent in perl

You're right. it wouldn't work for files greater than memory.

I thought it might for a while because of the in-place sort optimisation that came in somewhere in 5.8.x, that means that:

@ar = sort @r;

gets converted to sort \@ar; and sorts in place rather then copies the array to the stack and back.

But looking at the code, it doesn't work for tied arrays:

/* optimiser converts "@a = sort @a" to "sort \@a"; * in case of tied @a, pessimise: push (@a) onto stack, then assig +n * result back to @a at the end of this function */

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?

Replies are listed 'Best First'.
Re^4: Sort command equivalent in perl
by davido (Cardinal) on Dec 16, 2011 at 17:25 UTC

    Yup, there's the gotcha that gotme. :) I remembered that @array = sort @array doesn't make a copy, but failed to think through the fact that tie would be different.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://943989]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2019-02-16 22:24 GMT
Find Nodes?
    Voting Booth?
    I use postfix dereferencing ...

    Results (95 votes). Check out past polls.