in reply to Re^9: Howto Avoid Memory Problem in List::MoreUtils
in thread Howto Avoid Memory Problem in List::MoreUtils

how have you created the scalars inside @numbers?

I am creating the array with rand, so they should already be IVs:

#! perl -slw use strict; use sort '_quicksort'; sub mem { my( $usage ) = `tasklist /NH /FI \"pid eq $$\" ` =~ m[ (\S+) \s+ +K \s* $ ]x; return $usage; } $| = 1; my @a; $#a = 20e6; $a[ $_ ] = int rand 32767 for 0 .. 20e6; printf "Mem after building array: %s kb\n", mem; @a = sort{ $a <=> $b } @a; printf "Mem after sorting array: %s kb\n", mem;
Also, in not too old versions of perl, there was a bug that caused numbers to be converted to strings inside sort even when numeric comparison was used.

That was it. I'm still using 5.8.6 as my general install. Running the above script under 5.8.8 fixes that problem. Many thanks for your patience.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.