PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nach dateien und ordnern sortieren


rrdh
04.10.2003, 18:38
wie modifiziere ich folgendes script so, dass im ausgabearray die ordner vorne und die normalen dateien hinten stehen?
bsp: ordner1 ordner2 datei1 datei2 etc


if ($a eq "ls") {
$daten_dir = "own/home/";
opendir(DIR,"$daten_dir")|| die "fehler $!";
for (readdir(DIR)){
next if /^\./;
push @files,$_ if //;
}
close DIR;
print " current directory: /\n";
print " $_" for @files;
$anzahl = @files;
if ($reguaergtaerukgztaeukrgtkauegtaergaergaer ne 1) {
$reguaergtaerukgztaeukrgtkauegtaergaergaer = 1;
} else {
$anzahl -= 1;
}
print "\n total $anzahl file(s)";
@files = "";
}

das problem ist, dass ich den obenstehenden code nicht selbst geschrieben habe und davon null verstehe. :mauer:
Hilfe!


Jan Krüger
05.10.2003, 20:56
Am einfachsten nach dem close-Befehl das Array entsprechend sortieren:

@files = sort { ((-d $b) - (-d $a)) * 2 + ($a cmp $b) } @files;

Der Code würde so zwar nicht im Lehrbuch stehen, *sollte* aber gehen. :)

rrdh
05.10.2003, 21:57
thx!