Hi
$fehler = "$fehler<br>"$wert"$fehler_tab{"$sprache"}{'F23'}"$feld"";
MANN O MANN ist das grausam, da verliert man ja jede Lust den menschlichen Lexer zu spielen...
Perls Interpolation funktioniert ungefähr so, dass er in "...$var..." Bereichen alle Variablen rausholt und vorm compilieren in eine Verknüfung
'...' . $var . '...' übersetzt.
Eine deiner Variablen ist AFAIS ein HoH namens $fehler_tab{"$sprache"}{'F23'} was umgesetzt wird zu
...' . $fehler_tab{"$sprache"}{'F23'} . '...'
^ ^
und die escapten quotes (markiert ^) kann Perl im Code nicht gebrauchen, da versagt IMHO das Autoquoting für Hashkeys.
So und jetzt ein kleiner Kurs wie du das Zeug *lesbar* machen kannst
--------------------------------------------------------------------
Perl kennt die Funktionen q() für ' und qq() für " dann brauchst du auch nicht mehr zu escapen[*]. Aternativ gibts Here-Documents. Mach dich mal klug!!!
ALSO:
$fehler = qq(
$fehler <br> "$wert" $fehler_tab{$sprache}{F23} "$feld"
);
$fehler = <<"__ENDZEILE";
$fehler <br> "$wert" $fehler_tab{$sprache}{F23} "$feld"
__ENDZEILE
Tschau
LanX
[*] der geneigte Leser mag anmerken das dann () escaped werden müssen, dass ist aber nur die halbe Wahrheit weil Perl einem eine ganze Latte an alternativen Klammerpaaren und Bezeichnern anbietet, d.h. sowohl q[] oder auch q{} oder auch q// oder auch q## usw gingen zur Not, wenn man denn keine Here-Docs mag.