Thread Listenseparator
(20 answers)
Opened by barney at 2023-11-30 19:33 2023-12-01T09:07:59 barney Richtig: Das passiert schon, wenn der Tokenizer das Ende des Strings sucht. Jeder \, der nicht vor dem Stringbegrenzer steht, wird beibehalten. Ein \ vor dem Stringbegrenzer hat aber seinen Zweck erfüllt und wird eliminiert. Andersrum formuliert: Wenn Du $" zwischen "" interpolieren willst, dann musst Du das als $\" schreiben, sonst ist hört der String mit dem $ auf. Es gibt einen Syntaxfehler Final $ should be \$ or $name. Dass es am Begrenzer liegt, kann man vorführen, indem man die Funktion qq verwendet: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 use v5.24; use strict; use warnings; $/ = 'IRS'; $\ = 'ORS'; $" = '-'; say qq"foo$\"bar"; # foo-bar say qq'foo$\"bar'; # fooORS"bar say qq'foo$"bar'; # foo-bar say qq/foo$\/bar/; # fooIRSbar say qq/foo$\bar/; # fooORSbar say qq$foo\$"bar$; # foo-bar say qq$foo\$\"bar$; # fooORS"bar Dass der Syntax-Highlighter hier ins Schleudern kommt, wundert mich auch nicht weiter. Dass Perl solche Verrücktheiten zuläßt, wird ja manchmal als Argument gegen die Sprache verwendet. Aber ich finde es ganz sympathisch, dass die Sprachsyntax uns als vernunftbegabte Wesen betrachtet und davon ausgeht, dass man Magie nur dort einsetzt, wo sie notwendig ist. |