Thread Mehrdimensionales Array: Mehrdimensionales Array aus einem file e (7 answers)
Opened by Gast at 2005-12-23 12:21

Strat
 2006-01-26 18:15
#61338 #61338
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
da brauchst du zuerst mal den schluessel (nennen wir ihn mal $key; aber du findest da sicher Variablennamen, die den inhalt besser beschreiben), der bei dir in spalte 4 ist
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
my $file = "file2";
open (my $FILE, "<", $file) or die "Error in reading '$file': $!\n";
while (my $line = <$FILE>) {
chomp($line); # zeilenumbruch am ende weg

my @columns = split(/,/, $line); # aufsplitten
my $key = $columns[3]; # 0,1,2,3

if (exists $lut{$key}) { # ist was vorhanden?

# entweder die lange version
my @fields = @{ $lut{$key} }; # komplett dereferenzieren
print "@columns: Ergebnis: $fields[2]\n";

# oder kuerzer, ohne @fields in einer zeile:
# print "@columns: Ergebnis: $lut{$key}->[2]\n";
} # if

else {
print "Fehler: fuer '$key' jibbet nix\n";
} # else
} # while
close ($FILE);

wenn das CSV-Format etwas komplexer wird (z.B. duerfen auch \, in den werten vorkommen, dann funktioniert das einfache split nicht mehr; da dann besser CPAN:Text::CSV oder CPAN:Text::CSV_XS (zweites ist schneller) verwenden.\n\n

<!--EDIT|Strat|1138292158-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Mehrdimensionales Array: Mehrdimensionales Array aus einem file e