SELFHTML Forums-Auslese CGI und Perl | |
Forums-Auslese |
|
Wie sortiert man eine Liste? |
|
Basierend auf einem Forums-Beitrag vom 2.11.1998 von:
Frank Schönmann, fs@tower.de
Jörk Behrends, jbehrends@abstrakt.de
Um eine Liste in Perl zu sortieren, dient der Befehl sort. Dieser erwartet eine Liste, die er sortieren soll und liefert die sortierte Liste zurück. Außerdem können Sie sort eine Unterroutine übergeben, die mit den momentan zu vergleichenden Werten der Liste gefüttert wird, und zwar über $a und $b. Die beiden Werte werden dann eventuell neu angeordnet, je nachdem ob der Rückgabewert der Unterroutine größer, gleich oder kleiner als null ist. Statt direkter Angabe der Unterroutine können Sie an dieser Stelle auch eine Funktion aufrufen.
# alphabetisch sortieren (aufsteigend) @sortiert = sort @unsortiert; # alphabetisch sortieren (absteigend) @sortiert = sort { $b cmp $a } @unsortiert; # numerisch sortieren (aufsteigend) @sortiert = sort { $a <=> $b } @unsortiert; # numerisch sortieren (absteigend) @sortiert = sort { $b <=> $a } @unsortiert; # nicht-casesensitiv sortieren @sortiert = sort { lc($a) cmp lc($b) } @unsortiert; |
Auf die gleiche Art und Weise lassen sich auch Hashes sortieren, zum Beispiel nach Werten.
# Hash nach Werten sortieren @sortiert = sort { $hash{$a} <=> $hash{$b} } keys(%hash); |
Basierend auf einem Forums-Beitrag vom 26.09.1998 von:
Stefan Münz, muenz@csi.com
Um zu ermitteln, wie oft ein Zeichen in einem String vorkommt, können Sie folgendes Perl-Skript verwenden.
#!/usr/bin/perl $Textzeile = "Vorname;Name;Anschrift;PLZ;Ort;Telefon;Telefax;EMail"; $Trennzeichen = ";"; $Anzahl = 0; for($i=0; $i<length($Textzeile); $i++) { if(substr($Textzeile,$i,1) eq $Trennzeichen) { $Anzahl++; } } print "Content-type: text/html\n\n"; print "<html><head><title>User</title></head>"; print "<body>\n"; print "Anzahl Trennzeichen: ", $Anzahl, "\n"; print "</body></html>\n"; |
Lesen Sie auch den mit dem Thema "Perl-Kontrollstrukturen" verwandten Beitrag:
Wie erzeugt man einen Hash aus den Formularangaben?.
weiter: | Perl: reguläre Ausdrücke |
zurück: | Umgebungsvariablen und Server Side Includes |
SELFHTML Forums-Auslese CGI und Perl |
© 2000 das Redaktionsteam