Thread Fehler in while-Konstrukt? (4 answers)
Opened by Thomas at 2010-05-20 14:06

Taulmarill
 2010-05-20 15:02
#137382 #137382
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Ich schätze mal, dass die Fehlermeldung damit zusammen hängt, dass du nicht kontrollierst, ob das Einlesen einer Zeile in Codezeile 19 auch wirklich geklappt hat. Daher kann es dazu kommen, dass $line undefiniert ist, was die Warnungen produziert.

Um uns noch ein wenig zu unterstützen, könntest du noch kurz angeben, welche Zeilen in deinem geposteten Code den Zeilennummern aus den Warnungen entsprechen.

edit:
Ich hab mal kurz was zusammengebaut um zu Zeigen wie ich das Problem angehen würde. Da ich das Format der zu verarbeitenden Daten nicht kenne konnte ich es aber nicht testen:
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
26
27
28
29
use strict;
use warnings;

my $anzahl_faelle_mandant = 0;
my $anzahl_faelle_gesamt = 0;
my $zeile = 0;

my $FHOUTAUSZAHLUNG = '/some/file';

open(my $FH, "<$FHOUTAUSZAHLUNG") or die "open file: $!";

while(my $line = <$FH>) {
    $zeile++;
    chomp ($line);

    if ( $line =~ /\s\sS U M M E N B L A T T/ ) {
        #SUMMENBLATTBERECHNUNG
        print $zeile . ": " . $anzahl_faelle_mandant . "\n";
        #alle Mandantenzähler wieder auf 0 setzen
        $anzahl_faelle_mandant = 0;
    }

    elsif ($line =~ /BANK\s\d\d\d\d\d\d\d\d/) {
        $anzahl_faelle_mandant++;
        $anzahl_faelle_gesamt++;
    }
}
print "gesamt: " . $anzahl_faelle_gesamt;
close $FH;

Last edited: 2010-05-20 15:09:43 +0200 (CEST)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B

View full thread Fehler in while-Konstrukt?