Hallo zusammen,
mir ist ein seltsames Verhalten in Perl aufgefallen.
Wird auf eine Variable das selbe Pattern-Match in
mehreren IF-Abfragen hintereinander durchgeführt (mit globaler Erkennung!), so findet Perl den Match lediglich in jeder zweiten Abfrage!!!!
Ist euch so ein Verhalten schon mal aufgefallen? Und kann
jemand erklären aus welchen Gründen das so ist?
Das Programm lautet:
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
33
# /* INCLUDE */
use strict;
my $sFeld = "ParamSet";
if($sFeld =~ m/ParamSet/g)
{
print "1 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "2 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "3 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "4 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "5 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "6 mal gefunden\n";
}
if($sFeld =~ m/ParamSet/g)
{
print "7 mal gefunden\n";
}
Die Ausgabe beim Ausführen des Programms dann:
1 mal gefunden
3 mal gefunden
5 mal gefunden
7 mal gefunden
Vielen Dank schon mal für eure Hilfe!!\n\n
<!--EDIT|esskar|1131009924-->