Frank Schönmann: Perl-HTML-JavaScript-HTML

Beitrag lesen

hi!

print "parent.frames[0].document.open();\n";
print "parent.frames[0].document.writeln ("<html><head>");\n";
print "parent.frames[0].document.writeln ("<script language=\"JavaScript\">");\n";
-- hier kommt javascript-code (natürlich angepasst) --
print "parent.frames[0].document.writeln ("</script>");\n";

Warum maskierst du hier das ">"?

print "parent.frames[0].document.writeln ("</head>");\n";

Soweit ich weiß sind ";" für Perl keine Sonderzeichen und müssen in Strings nicht maskiert werden.

auf was sollte man grundsätzlich achten bei sollchen vielschichtigen Befehlen (Stichwort: Maskieren)?

Nicht zuviele (vermeintliche Sonder-)Zeichen maskieren

Einfache ' verwenden statt den doppelten ", wenn möglich. Ein " ist nur nötig, wenn entweder Variablen/Skalare interpoliert werden sollen, oder wenn du diese Sonderzeichen wie \n etc. verwendest. Im obigen Fall wäre es - zumindest bei den angegebenen Zeilen - möglich, das zu nutzen und du hast viel Arbeit gespart.

Wenn lange Texte ausgegeben werden am besten gleich einen ganzen Block ausgeben, statt vor jede Zeile "print" zu schreiben, zb:
print <<'EOT';
<html><head>
...
EOT
EOT ist frei wählbar, muss am Anfang der Zeile stehen und danach muss mindestens ein Zeilenumbruch folgen. Die Art der Anführungszeichen beim "print" entspricht der bei einer Ausgabe von nur einer einzigen Zeile.

bye, Frank!