Thread regexp funktioniert erst beim zweiten Lauf (13 answers)
Opened by dukeofnukem at 2007-06-20 13:23

dukeofnukem
 2007-06-20 15:09
#77683 #77683
User since
2007-01-15
47 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
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
#!/usr/bin/env perl

use strict;
use warnings;

my @files = @ARGV || glob "*.xml"
or die "No files specified!";

my %xmlstring = (
Hzbprtype => qr/<kBPrType[^>]*>\s*52\s*<\/kBPrType>/,
);

for my $file ( @files ) {
my @cont = do { local(*ARGV, $_, $/); @ARGV = $file; $/ = "</BaseProduct>"; <>; }
if ( -r $file );

for ( @cont ) {

if ( /$xmlstring{'Hzbprtype'}/gs ) {
print "\nThis is impossible!";
}


if ( /$xmlstring{'Hzbprtype'}/gs ) {
print "\nSo weit so gut...";
}
}
}


Es wird nur das erste print ausgeführt - weigert sich perl die selbe Bedingung zwei Mal zu prüfen? Kann ich mir gar nicht vorstellen, schließlich kann doch im ersten if-block ein statement stehen von dem der zweite Match abhängt.

Und seltsamerweise matched hier eben der erste check und nur der erste, während in meinem anderen code nur der zweite greift...
drum&bass is a state of mind

View full thread regexp funktioniert erst beim zweiten Lauf