SELFHTML

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

Diese Seite ist ein Dokument mit Informationstext

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

nach unten 

Wie sortiert man eine Liste?

Basierend auf einem Forums-Beitrag vom 2.11.1998 von:
E-Mail Frank Schönmann, fs@tower.de
E-Mail 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);

nach obennach unten 

Wie ermittelt man die Anzahl eines Zeichens in einem String?

Basierend auf einem Forums-Beitrag vom 26.09.1998 von:
E-Mail 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";

nach obennach unten 

Verwandte Beiträge

Lesen Sie auch den mit dem Thema "Perl-Kontrollstrukturen" verwandten Beitrag:
Seite Wie erzeugt man einen Hash aus den Formularangaben?.

nach oben
weiter:Weiter Seite Perl: reguläre Ausdrücke
zurück:Zurück Seite Umgebungsvariablen und Server Side Includes
 

© 2000 Seite das Redaktionsteam