Thread Rückgabe mehrerer Hashes geht nicht (22 answers)
Opened by SchaubFD at 2008-02-13 09:24

SchaubFD
 2008-02-14 15:40
#105898 #105898
User since
2008-02-13
14 Artikel
BenutzerIn
[default_avatar]
KurtZ+2008-02-14 11:48:01--
Ich stell es mir schwer vor Hashes zu sortieren, verwechselst du da was mit Arrays?


Nein, ich nutze den Index und sortiere später über zusammengesetzte Zeilen.

Beispiel (Pipe als Feldtrennung): Index, Datum, Uhrzeit

1 | 10.10.2007 | 08:15
2 | 09.10.2007 | 10:30
3 | 08.10.2007 | 23:15

Daraus mache ich

200710100815 | 1
200710091030 | 2
200710082315 | 3

Die Sortierte Liste gibt über den Wert dann:

200710082315 | 3
200710091030 | 2
200710100815 | 1

Der Index ist dann für mich der Zugriff auf die jeweiligen Werte. Ich möchte mir eine Datenbank ersparen und die Sortierung kann aus mehreren Feldern in Kombination bestehen. Ich brauche natürlich einen eigenen Sortierindex!

Übrigens meine jetzige Lösung (Hash) sieht nun so aus (habe auf eine ListenHash Variante umgestellt (spart 50% Code - Original Beispiel):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
sub lese_email
{
my @email;
my $satz;
my $datei="email.csv";
my $buf;

open(femail, "< $datei") or die "Kann Datei <$datei> nicht lesen!";
$satz=0;
$buf=<femail>; # Kopfzeile ignorieren - auslassen
while (<femail>) {
(
$email[$satz]{kostenstelle},
$email[$satz]{kostenstellenname},
$email[$satz]{kostentraeger},
$email[$satz]{kostentraegername},
$email[$satz]{konto},
$email[$satz]{kontoname},
$email[$satz]{email},
$email[$satz]{name}
)=split(';');
chomp($email[$satz]{name});
$satz++;
}
close femail;
return @email;
}


Dank eurer Hilfe finde ich das richtig schön!

View full thread Rückgabe mehrerer Hashes geht nicht