Thread Zeichenlimit einrichten
(40 answers)
Opened by andy at 2013-05-03 14:53
Du musst das Setzen der Hash-Elemente und die Abfrage in die jeweilige Schleife nehmen:
Code (perl): (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 use warnings; use strict; open my $infile_1, '<', 'content.csv' or die "Fehler beim Öffnen der Datei"; open my $infile_2, '<', 'common.csv' or die "Fehler beim Öffnen der Datei"; open my $outfile, '>', 'neu.csv' or die "Fehler beim Öffnen der Datei"; my @datei1 = <$infile_1>; my @datei2 = <$infile_2>; chomp (@datei1, @datei2); my %hash; for my $line_1 (@datei1) { my ($nummer1, $kuerzel1, $gesetz1) = split /;/, $line1; $hash{$kuerzel1} = $gesetz1; } for my $line2 (@datei2) { my ($nummer2, $kuerzel2, $gesetz2) = split /;/, $line2; if (exists($hash{$kuerzel2})){ # in $hash{$kuerzel2} steht $gesetz1 zum kuerzel print $outfile join(';', $kuerzel2, $hash{$kuerzel2}, $gesetz2), "\n"; } } Und Dir doch mal einen Perl-mäßigen Stil angewöhnen :) Editiert von FIFO: Variablendeklaration innerhalb der loops Editiert von FIFO: Variablendeklaration müssen doch außerhalb stehen wg. Zugriff Editiert von FIFO: chomp ergänzt Editiert von FIFO: Blödsinn, es muss $hash{$kuerzel2} und nicht $gesetz1 ausgegeben werden Last edited: 2013-05-31 13:38:58 +0200 (CEST) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|