Leser: 24
1
2
3
4
5
6
7
8
9
10
11
12
13
sub read_data {
my @curr = (); # aktueller Datensatz
while (<>) { # bricht bei EOF ab
chomp;
if ($_ ne '---'){
@curr = split(/|/,$_);
$error=$curr[2];
} else {last;}
}
print $#curr;
return $error;
}
Guest LukeCode: (dl )@curr = split(/|/,$_);
[...] und es sieht so aus als ob immer nur pro Feld EIN Buchstabe gespeichert wird
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
sub read_data { my @curr = (); # aktueller Datensatz my %hash = (); while (<>) { # bricht bei EOF ab chomp; $count++; if ($_ ne '---'){ @curr = split(/\|/); $error=$curr[1]; $hash{$error} = $count; #$error=$curr[1]; } else {last;} } print %hash; print "\n"; return %hash; }
QuoteIch brauch die Parameter count und error übergeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
sub read_data { my %hash; while ( my $line = <> ) { chomp $line; # 3 Spalten in 3 Variablen my ( $errno, $text, $count ) = split m{\|}, $line, 3; # Zuordnung von Text zum Zaehler $hash{$text} = $count; } # liefere Hash mit Zuordnungen zurueck return %hash; }
2010-04-19T17:14:17 LinuxerKönntest Du bitte Dein jetziges Problem genauer definieren. Danke.
Mir wird jedenfalls nicht klar, was Du hier konkret willst.
Mir wird auch nicht wirklich klar, was die Sub eigentlich für eine Aufgabe haben soll.
QuoteSollen die an die Sub übergeben werden, oder aus der Sub zurückgegeben werden?
1
2
3
4
5
6
7
$x='file.txt'
$x = "/LOG/$x";
open(DATEI,"<",$x) || die "Datei nicht gefunden";
my @Zeilen = <DATEI>;
print @Zeilen;
close(DATEI);
QuoteFehlermeldung: Error: No such file or directory at new.pl line 36.
1 2 3 4 5 6 7
$x='file.txt' my $local_path = "./LOG/$x"; open(DATEI,"<",$local_path) || die "Kann Datei nicht oeffnen: $!"; my @Zeilen = <DATEI>; print @Zeilen; close(DATEI);
Guest LukeCode: (dl )open(DATEI,"<",$x) || die "Datei nicht gefunden";
1 2 3 4
open FH, '<', $file or die "Could not open: $!"; # oder noch besser: open my $fh, '<', $file or die "Could not open: $!";
1 2 3 4 5 6 7 8
my $DATEI=''; $x = 'fehler.log' #wird übergeben daher nur in dem Beispiel jetzt $x = "/LOG/$x"; open(my $DATEI,"<",$x) || die "Error: $!"; my @Zeilen = <$DATEI>; print @Zeilen; close($DATEI);