#!/usr/bin/perl
use strict; use warnings;
my $xml = "<Katalog Shopid=\"1\">1,2,3,4,5</Katalog><Katalog
Shopid=\"2\">7,8,9,10</Katalog>";
foreach my $shopid(1..5){
my $pattern = "<Katalog Shopid=\"$shopid\">.*?</Katalog>";
print "Suche: $pattern \n";
$xml =~ /($pattern)/;
if($1){
print $1 ,"\n";
}else{
print "nix gefunden\n";
}
}
bringt als Ergebnis:
pummel@linux:~/data/scripts/artkat> ./extractKatalog.pl
Suche: <Katalog Shopid="1">.*?</Katalog>
<Katalog Shopid="1">1,2,3,4,5</Katalog>
Suche: <Katalog Shopid="2">.*?</Katalog>
<Katalog Shopid="2">7,8,9,10</Katalog>
Suche: <Katalog Shopid="3">.*?</Katalog>
<Katalog Shopid="2">7,8,9,10</Katalog>
Suche: <Katalog Shopid="4">.*?</Katalog>
<Katalog Shopid="2">7,8,9,10</Katalog>
Suche: <Katalog Shopid="5">.*?</Katalog>
<Katalog Shopid="2">7,8,9,10</Katalog>
ich erwarte eigentlich bei den shopids ab 3 ein 'nix gefunden'
Lasse ich die foreach-Schleife weg, und übergebe die shopid einzeln,
klappt es.
Merkt er sich irgendwie $1 vom letzen Match?
Was muss ich ändern, das es klappt?
Mit freundlichen Grüßen
Jens Puruckherr