Letzte Zeile einlesen
Stefan
- perl
Hallo,
in folgendem Code wird die letzte Zeile der Eingabedatei nicht bearbeitet.
@target=();
while(chomp($line=<IN>)){
$line=lc($line);
$line=~s/[^a-z0-9 äöüß\n]/ /g;
$_=~s/ / /g;
$line=~s/ ([0-9]+) ([a-z]{0,2})/$1$2/g;
$line=~s/ ([0-9]+)/$1/g;
@target = split(/ /,$line);
push(@dict,@target);}
Alle Wörter der letzen Zeile der Eingabedatei tauchen im Zielarray @dict nicht auf. Warum und wie kann ich das ändern?
Grüße
in folgendem Code wird die letzte Zeile der Eingabedatei nicht bearbeitet.
@target=();
du benutzt kein use strict?
Mit findet man einfacher Fehler.
while(chomp($line=<IN>)){
Hier wird die Schleife solange druchlaufen, bis chomp keinen Wert mehr liefert, d.h. wenn in der letzten Zeile kein Newline ist, wird diese auch nicht mehr eingelesen.
Besser:
while(<IN>)
{
chomp;
$_ = lc;
s/[^a-z0-9 äöüß]/ /g;
s/ / /g;
s/ ([0-9]+) ([a-z]{0,2})/$1$2/g;
s/ ([0-9]+)/$1/g;
push @dict, split / /, $_;
}
Struppi.
»»»» while(chomp($line=<IN>)){
Hier wird die Schleife solange druchlaufen, bis chomp keinen Wert mehr liefert, d.h. wenn in der letzten Zeile kein Newline ist, wird diese auch nicht mehr eingelesen.
Ah, vielen Dank für den Hinweis!