hi,
falls Du viel mit CSV-Dateien machst, zum Einen gibts es das Modul Text::CSV und zum Anderen ists oft besser, mit namentlichen Feldern zu arbeiten.
Name;Vorname;Str;PLZ;Ort
wird gesplittet, Du bekommst eine Liste qw(Name Vorname Str PLZ Ort), das wären die Feldnamen (z.B. aus der ersten Zeile der CSV-Datei).
Mit einem Hash-Slice über einen Helper-Hash bekommst Du die Werte, je Zeile ein Hash:
# Schleifenkörper über die Zeilen einer CSV-Datei
my %hh = (); # Helper Hash
@hh{qw(Name Vorname Str PLZ Ort)} = split ";",
Haselhuhn;Horst;Clausstraße;54321;Karl-Marx-Stadt; # Zeile
und dieser Hash je Zeile wird auf ein Array gepusht als Referenz:
push @kladde, \%hh;
Beim Ausgeben ist der Zugriff ganz einfach per Name möglich aus der Referenz heraus, jedes Array-Element ist eine $ref:
my $name = $ref->{'Name'};
Des Weiteren kann damit auch über ein beliebiges Feld sortiert werden, z.B. über den 'Ort':
foreach my $ref( sort {$a->{'Ort'} cmp $b->{'Ort'} } @kladde) {}
Machs Beste draus ;)
Hotti