SELFHTML Forums-Auslese CGI und Perl


Forums-Auslese
Perl: Variablen, Funktionen, Objekte, Kontrollstrukturen

Diese Seite ist ein Dokument mit Informationstext

 Wie sortiert man eine Liste?
 Wie ermittelt man die Anzahl eines Zeichens in einem String?
 Verwandte Beiträge

 

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.

Beispiele:

# 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.

Beispiel:

# Hash nach Werten sortieren
@sortiert = sort { $hash{$a} <=> $hash{$b} } keys(%hash);

 

Wie ermittelt man die Anzahl eines Zeichens in einem String?

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";

 

Verwandte Beiträge

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

© 1999  das Redaktionsteam