Leser: 20
0 000123456 Name 07/09 86,00 7,00 79,00R 0,00
Vorname 8,00N
1 2 3 4
if (substr($line,73,8) =~ /(\d?\.?\d?\d?\d?\,\d\d)/) { push (@neuer_stand, toZahl(substr($line,73,8))); }
1
2
substr outside of string at H:/summenpruefung.pl line 71, <$FH> line 3104.
Use of uninitialized value in pattern match (m//) at H:/summenpruefung.pl line 71, <$FH> line 3104.
1 2 3 4 5 6 7 8 9 10
if(my @elements=$line=~m!(\d+)\s+(\d+)\s+(\w+)\s+(\d+/\d+)\s+(\d+,\d+)\s+(\d+,\d+\w+)\s+(\d+,\d+)!) { print "@elements\n"; } elsif(my @elements=$line=~m!(\w+)\s+(\d+,\d+\w+)!) { print "@elements\n"; } else { print "Unbekanntes Zeilenformat\n"; }
1 2 3 4 5 6 7 8 9 10 11
my @elements=split(/\s+/,$line); if(@elements==6) { print "@elements\n"; } elsif(@elements==3) { print "@elements\n"; } else { print "Unbekanntes Zeilenformat\n"; }
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 31 32
#!/usr/bin/perl use strict; use warnings; while ( my $line = <DATA> ) { # nutze Magie von Perl's split() operator; Details: perldoc -f split my @fields = do { local $_ = $line; split; }; my $anzahl = @fields; # anzahl kontrollieren if ( 8 == $anzahl ) { local $, = ' '; print $anzahl, ':', @fields[3..6], "\n"; } elsif ( 2 == $anzahl ) { # vielleicht weitere checks um zu erfahren, welche Spalten man erwischt local $, = ' ', print $anzahl, ':', @fields, "\n"; } # Fehlerfall else { local $, = ' '; print $anzahl, ':', @fields, "\n"; } } __DATA__ 0 000123456 Name 07/09 86,00 7,00 79,00R 0,00 Vorname 8,00N
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#! /usr/bin/perl use strict; use warnings; while ( my $line = <DATA> ) { chomp $line; print "Zeile $.:\n"; ## KONTROLLE # Feldgroessen grob erraten anhand erster Datenzeile my @fields = unpack("AA11A15A11A12A11A13A6", $line); s/^\s+// for @fields; # fuehrende Leerzeichen aus Feldern entfernen print ">$_<\n" for @fields; ## KONTROLLE } __DATA__ 0 000123456 Name 07/09 86,00 7,00 79,00R 0,00 Vorname 8,00N
$line .= " " x (73 - length($line));