007
12.02.2007, 12:11 Uhr
~Alfredo
Gast
|
Hallo zusammen,
nun habe ich das nächste Problem. Ich wollte das Programm nun so umschreiben, dass Leerzeilen zwar ausgegeben, aber nicht mitgezählt werden. Dazu habe ich mir eine Datei namens test.txt angelegt mit einigen Leerzeilen darin. Leider komme ich immer nur in den else-Zweig und nie in den if-Zweig. Obwohl leere Zeilen in der Datei sind werden sie mit der Anweisen "if(!$line)" nicht gefunden. Hier mein Code:
Code: |
#!/usr/bin/perl use strict; use warnings;
my $file = '/cygdrive/d/Perl/test.txt'; my $counter = 0; my $line;
# open file for reading open(FILE_HANDLE, "<", $file) || die "Error: $!";
# read the file line per line while ($line = <FILE_HANDLE>) { # print the line numbers in the form 000, 001, 002, ... 009, 010, ... # if a line is empty then it shall not be counted but also printed
# remove \n from $line chop $line;
if (!$line) { # empty line print "\n"; } else { print sprintf("%3.3d", $counter++) . ": " . $line . "\n"; } }
close(FILE_HANDLE);
|
Was mache ich falsch? Ich verstehe es einfach nicht.
Danke schonmal im Voraus Alfredo |