linux-l: An die Perl-Könner ;-)....

Ihno Krumreich ihno at fh-brandenburg.de
Di Mai 18 09:26:46 CEST 1999


> 
> Hallöhchen,
> ist sicher nur eine einfache Funktion aber ich bekomme sie einfach nicht
> hin !!!! (Anfänger!)
> Wie schaff ich es mittels Perl eine Liste zu sortieren ???? Die Liste
> besteht aus 4 Spalten und ich will sie nach der 2. Spalte sortieren lassen
> und wenn es geht dann noch nach der 1. Spalte ;-) aber auf jeden Fall
> erstmal nach der 2. Spalte !
> Aber Perl versteht ja nun unter Tabellen eher Listen also kann ich auf die
> Tabelle nun nicht einfach "sort" anwenden !?
> Also "einfach" die Tabelle aus einer Txt-Datei einlesen (Spalten sind durch
> ; getrennt) , das müßt ja dann ein assoziatives Array werden oder ?
> Dann nach der 2. Spalte sortieren (??????) und wieder als Tabelle ausgeben
> , also die Einträge wieder in eine andere Datei schreiben (das geht ja noch
> ;-) ) .
> 

# Loeschen des Feldes
%daten = ();
# TODO oeffnen der Datei und einlesen einer Zeile in $zeile
while <noch_Daten>
do
# Aufspalten der Daten in die Felder
($spalte1,$spalte2,$spalte3,$spalte4) = split(/;/,$zeile);
# Assoziatives Feld mit Spalte2 und Spalte1 als Schluessel.
# Trennzeiche ":" kann beliebig veraendert werden.
$daten{"$spalte2:$spalte1"} = $zeile;
done
# Sortiren nach den Schluesseln und ausgeben
foreach $element sort(keys(%daten))
do
	print $daten{$element};
done

so ungefaehr muesste es aussehen. Bitte keine Flames weil
die Syntax nicht 100% ist.


Gruss

Ihno Krumreich

==============================================================================
Ihno Krumreich       | Phone (49) 3381 355438          U   U N   N  III  X   X
FH Brandenburg       | email: ihno at fh-brandenburg.de   U   U NN  N   I    X X
Magdeburgerstr. 50   | FAX (49) 3381 355499            U   U N N N   I     X
D-14770 Brandenburg  | NIC:IK139  RIPE:IK255-RIPE      U   U N  NN   I    X X
                                                        UUU  N   N  III  X   X
___________________________________________________________________
   NT is not the answer, it's the question and the answer is NO



Mehr Informationen über die Mailingliste linux-l