Thread "Ungeschickte" sort-Subroutine spammt Speicher voll..
(2 answers)
Opened by FoolAck at 2008-07-29 01:39
Ich wollte eben stumpf die Ausgabe von "ls -l" nach Größe anordnen (ja, ich weiß. "man ls". Die "-S" Option unzo...) und hab dabei die sort-Sub ziemlich versaut, was in einem üblen Speicherzugespamme resultierte.
Hier der (inzwischen) korrigierte Einzeiler: Code: (dl
)
ls -l|perl -ane 'push @lines, [@F]; END { print map { "@$_\n" } sort {$a->[4] <=> $b->[4]} @lines; }' Hier der pöhse Einzeiler, der meinen RAM zumüllt: Code: (dl
)
ls -l|perl -ane 'push @lines, [@F]; END { print sort {$lines[$a][4] <=> $lines[$b][4]} @lines; }' Hm. Ist natürlich offensichtlich falsch. $a ist in dem Fall ja eine Arrayreferenz (genauso wie $b), aber warum (und mit was) wird der Speicher da so übelst vollgepackt? Quote Mir macht das tendenziell ein wenig Angst. (Innerhalb einer Sekunde oder so mehrere 100mb belegt (halt, bis kein Speicher mehr frei ist....).) Die "kreative" Sort-Subroutine ist übrigens ein Resultat von Schlafdeprivation, also nicht lachen. :( |