Hallo,
ich habe ein kleines Problem mit regulären Ausdrücken und einer Perl-Funktion.
Hier ist der extrahierte, auf das notwendigste reduzierte Code:
sub myfunction
{
my $line = $_[1];
my $cnt = 0;
while ($cnt < ($_[0]))
{
print $cnt;
print " ";
print $_[$cnt + 2];
print "\n";
}
return $line;
}
while (<>)
{
$myline = "sometext";
if (m/SOMETHING\("(.\*)",(.\*)\)/)
{
$dummy = $2;
$line = myfunction(2,$myline,$1,$dummy);
}
}
aufgerufen mit Eingabezeile:
SOMETHING("blabla",laber)
ergibt als Ausgabe
0 blabla
1 laber
Ersetze ich im Funktionsaufruf aber $dummy durch $2, erhalte ich als Ausgabe
d.h.
if (m/SOMETHING("(.*)",(.*))/)
{
$line = myfunction(2,$myline,$1,$dummy);
}
bekomme ich als Ausgabe
0 blabla
1
d.h. der letzte Parameter kommt nicht mehr bei der Funktion an.
Ist da irgendwo ein Denkfehler bei mir?
Andreas