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
my $line_nr=0; my $line_nr_oben=0; local $/ = "/>"; unshift(@ARGV, '-') unless @ARGV; while ($ARGV = shift) { open(ARGV, $ARGV); $line_nr=0; $line_nr_oben=0; while (<ARGV>) { $string = $_; $line_nr=$line_nr_oben; #Eingelesene Zeilenzahl speichern foreach ($string =~ m/\n/g){ $line_nr_oben++; } #Zeilenumbrüche entfernen $string =~ s/\r?\n//g; if($string =~ m/< ... ... print "Feher in Zeilen $line_nr - $line_nr_oben";
unshift(@ARGV, '-') unless @ARGV;
while ($ARGV = shift) {
1
2
3
4
5
6
7
8
9
10
11
12
13
while (<>) {
... # code for each line
}
is equivalent to the following Perl-like pseudo code:
unshift(@ARGV, '-') unless @ARGV;
while ($ARGV = shift) {
open(ARGV, $ARGV);
while (<ARGV>) {
... # code for each line
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
local $/ = "/>"; my @files = @ARGV ? @ARGV : ('-'); # - ist STDIN my $fh; for my $file (@files) { open($fh, '<', $file); # ... or die ... my ($line_nr, $line_nr_oben) = (0, 0); while (my $string = <$fh>) { $line_nr = $line_nr_oben; my $count = s{\r?\n}{}g || 0; # s/// gibt Zahl der Matches zurück $line_nr_oben += $count; if($string =~ m/< ... ... print "Feher in Zeilen $line_nr - $line_nr_oben";
QuoteHANDLE->input_line_number( EXPR )
$INPUT_LINE_NUMBER
$NR
$.
2012-08-02T09:09:24 manugibt es wirklich einen Record unabhänigen Operator, mit dem die Zeilenzahl bestimmt werden kann?