Thread String einlesen und nachfolgendes Wort ausgeben
(20 answers)
Opened by SCORRPiO at 2014-04-15 10:15 2014-04-15T13:17:02 SCORRPiO STOP! Wenn Du das hinter die anderen Matchings setzt, ist in $1 nicht mehr das drin, was Du denkst. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 my $exitWith; while ( my $zeile = <$dataFH> ) { if ( $zeile =~ /($typeRegExp)/ ) { if ( defined $exitCodes{$1} ) { $exitWith = $exitCodes{$1}; } my ($phy) = $zeile =~ / \b phy \s+ (\w+) /x; my ($state) = $zeile =~ / \b state \s+ (\w+) /x; my ($flags) = $zeile =~ / \b flags \s+ (\w+) /x; print "phy: $phy, state: $state, flags: $flags\n"; exit $exitWith if defined $exitWith; # <--- EDIT: Bedingung ergänzt } else { print "UNKNOWN\n"; } } Deine Version funktioniert nur zufällig, weil der letzte Match sich auf 'flags' bezieht. Editiert von FIFO: defined-Abfrage vergessen, ergänzt Last edited: 2014-04-15 17:49:05 +0200 (CEST) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|