[verhunztes Originalposting eliminiert]
Hallo,
hier nochmal der korrekte fehlerhafte Code (der Code, der nach wie vor den beschriebenen Fehler produziert, diesmal aber
aus dem richtigen Testscript - ich hatte vorher aus einer aelteren Version kopiert und natuerlich statt copy-paste-adapt nur
copy-paste-forget gemacht) Sorry - irgendwie war ich nach laengerer Fehlersuche nicht mehr in der Lage, das Posting korrekt
auf die Reihe zu bringen. Tut mir leid, trotzdem danke ich Euch schon mal fuer die Muehe, die Ihr Euch gemacht habt.
So, nu muss ich noch die Tabs eliminieren (so dick war das script ja nicht, dass man es nicht haette rauskriegen koennen -
ausserdem tendiere ich sowieso dazu, Debug-Code wie die Prints in der Funktion gar nicht einzuruecken, um das Zeug schneller
wieder eliminieren zu koennen), dann kann ich das nochmal absenden.
Mit der Bitte, dass Ihr nochmal einen Blick drauf werft.
TIA,
Andreas
sub myfunction
{
my $line = $_[1];
my $cnt = 0;
while ($cnt < ($_[0]))
{
print $cnt;
print " ";
print $_[$cnt + 2];
print "\n";
$cnt += 1;
}
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,$2);
}
bekomme ich als Ausgabe
0 blabla
1
d.h. der letzte Parameter kommt nicht mehr bei der Funktion an.
Ist da immer noch irgendwo ein Denkfehler bei mir?
TIA
Andreas