Alexander Foken: einlesen und "on the fly" sortieren?

Beitrag lesen

Moin Moin !

my $dir='/path/to/users'; # absolut bitte, im CGI!
opendir DIR,$dir or die "opendir '$dir': $!";
my @list=sort { -M("$dir/$a") <=> -M("$dir/$b") } readdir DIR;
closedir DIR;

Erweitert mit einigen Filtern, so daß nur noch Dateien mit dem Muster *.cgi gesucht werden:

my $dir='/path/to/users'; # absolut bitte, im CGI!
opendir DIR,$dir or die "opendir '$dir': $!";
my @list=sort { -M("$dir/$a") <=> -M("$dir/$b") } grep { /.cgi$/ and -f "$dir/$_" } readdir DIR;
closedir DIR;

Was da genau passiert, findest Du in der Perl-Doku. ;-)

Kann man die Files überhaupt schon während des Einlesens sortieren? Ich frage mich das deshalb, weil das Script ja noch nicht weis, welche Dateien noch kommen. Allerdings verstehe ich zu wenig von perlinternen Prozessen.
Wie könnte ich folgendes Beispiel so ändern, dass ich es nicht in eine Liste pushen muss, sondern gleich sortieren kann?

Du kannst natürlich auch selbst einen Bubblesort o.ä. implementieren. Der Algorithmus muß darauf optimiert sein, einen einzelnen Wert in eine bereits sortierte Liste einzubauen.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"