Beitrag von hempelr (1976 Beiträge) am Samstag, 1.Februar.2003, 20:47.
@Sander Substiution wie Interpolieren - war Re: Regex
Hallo, Sander,
danke erst mal, auch für den Tipp mit dem Neuaufbau der DB (war Daten gehen verloren)
hab den regex-Ausdruck von dir getestet, geht soweit auch, wenn mans "einfach" nutzt.
Allerdings haut es beim Interpolieren nicht hin - hast du vielleicht ne Idee, wie man das hinkriegen könnte; ich brauchs nämlich als interpolierten Ausdruck in nem langen, dynamisch generierten EOF-Block. Der kann nicht unterbrochen werden, weil die zu bearbeitenden Variableninhalte dynamisch generierte Variablennamen aus ner Abfrage auf die Feldnamen ner DB sind.
Hier mal der Quellcode des Testscriptes und darunter die Ausgaben:
---Code---
<perl>
$var1 = "\"(Name:Var1)\"";
out "1.1) \$var1 vor Substitution:<$var1> <br>";
$var1 =~ s/^"(.*)"$/$1/;
out "1.2) \$var1 nach Substitution:<$var1> <br><br>";
$var2 = "\"(Name:Var2)\"";
out "2.1) \$var2 vor Substitution:<$var2> <br>";
out "2.2) Interpolation \$var2 < ${ $var2 =~ (s/^\"(.*)\"$/$1/ ) }> im out<br><br>";
$var3 = ""; out "3.1) Leerwert in var3: <$var3><br>";
out "3.2) Interpolation \$var3 <${ \($var3 =~ (s/^\"(.*)\"$/$1/)) }>im out<br><br>";
$var4 = "\"\""; out "4.1) 2x Doppelquotes in var4: <$var4><br> ";
out "4.2) Interpolation \$var4 <${ \($var4 =~ (s/^\"(.*)\"$/$1/)) }>im out<br><br>";
$var5 = ""; out "5.1) Leerwert in var5: <$var5><br>";
$var5 =~ s/^"(.*)"$/$1/;
out "5.2) \$var5 nach Substitution:<$var5> <br><br>";
$var6 = "\"\""; out "6.1) 2x Doppelquotes in var6: <$var6><br>";
$var6 =~ s/^"(.*)"$/$1/;
out "6.2) \$var6 nach Substitution:<$var6> <br><br>";
</perl>
--- Ende Code - Beginn Ausgaben ---
1.1) $var1 vor Substitution:<"(Name:Var1)">
1.2) $var1 nach Substitution:<(Name:Var1)>
2.1) $var2 vor Substitution:<"(Name:Var2)">
2.2) Interpolation $var2 < (Name:Var1)> im out
3.1) Leerwert in var3: <>
3.2) Interpolation $var3 <>im out
4.1) 2x Doppelquotes in var4: <"">
4.2) Interpolation $var4 <1>im out
5.1) Leerwert in var5: <>
5.2) $var5 nach Substitution:<>
6.1) 2x Doppelquote in var6: <"">
6.2) $var6 nach Substitution:<>
--- Ende Ausgabe ---
Woher kommt denn der Wert 1 in 4.2) für $var4, zu Erwarten wäre doch eigentlich nichts, so wie in 6.2)
Ich weiß ja, daß du (und ich glaub auch CB) was gegen das Interpolieren hast, aber es geht im allgemeinen in Hier-Dokumenten hervorragend, sogar Subs werden da ganz prima ausgeführt.....
Danke für nochmalige Hilfe
Ruben