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

Gast Thomas
 2010-05-20 14:06
#137381 #137381
Hallo zusammen,

ich überprüfe gerade eine Auszahlungsliste und habe dabei verschiedene Mandanten, die
a) einzeln auf die Anzahl der Fälle und
b) auf die Gesamtzahl der Fälle überprüft werden müssen.
Prüfkriterium für einen Fall ist dabei eine Regex, s.u.

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
30
my $anzahl_faelle_mandant = 0;
my $anzahl_faelle_gesamt = 0;
$zeile = 0;

open($FH, "<$FHOUTAUSZAHLUNG") or die "open file: $!";
while($line = <$FH>)
{
        $zeile++;
        chomp ($line);
        while ($line !~ /\s\sS U M M E N B L A T T/)
        {
                # falls die Zeile einen neuen Fall darstellt (BANK BLZ (8stellig))
                if ($line =~ /BANK\s\d\d\d\d\d\d\d\d/)
                {
                        $anzahl_faelle_mandant++;
                        $anzahl_faelle_gesamt++;
                        #print $line;
                }
                $line = <$FH>;
                chomp ($line);
                $zeile++;
        }
        #SUMMENBLATTBERECHNUNG
        print $zeile . ": " . $anzahl_faelle_mandant . "\n";
        #alle Mandantenzähler wieder auf 0 setzen
        $anzahl_faelle_mandant = 0;
        
}
print "gesamt: " . $anzahl_faelle_gesamt;
close $FH;


Ich bekomme aber immer folgende Meldung, die Zeile 16991 ist die letzte im Dokument:
Code: (dl )
1
2
3
Use of uninitialized value $line in scalar chomp at H:/summenpruefung.pl line 549, <$FH> line 16991.
Use of uninitialized value $line in pattern match (m//) at H:/summenpruefung.pl line 550, <$FH> line 16991.
Use of uninitialized value $line in pattern match (m//) at H:/summenpruefung.pl line 542, <$FH> line 16991.

Gleichzeitig komme ich nie zum letzten "print", da hab ich doch garantiert nen Fehler in der while-Verwendung, oder?

Danke für Eure Hilfe!
Last edited: 2010-05-20 14:35:29 +0200 (CEST)

View full thread Fehler in while-Konstrukt?