print-Anweisung bei Perl...ohne Anführungszeichen?
Sebastian S.
- perl
Hallo allerseits,
ich habe folgendes Perl-Script im Internet gefunden und würde gerne mehr über seine Funktionsweise erfahren.
print <<__W2__;
<BODY BGCOLOR="#FFFFFF">
<CENTER>
<TABLE WIDTH=550 BORDER=1>
<TR>
<TD>
<H1>Danke!</H1>
Deine Angaben wurden in die WHU-Praktikumsdatenbank übernommen.
<P>
Folgende Angaben hast Du gemacht:
<P>
__W2__
Dieser Abschnitt, der offensichtlich dazu gedacht ist, ein HTML-Dokument an den Browser zurückzugeben, enthält mehrere Zeilen, aber nur eine "print"-Anweisung. Der zurückzugebende Text ist nicht in Anführungszeichen eingefaßt...
Bis jetzt kannte ich nur etwas wie:
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>Danke!</title>\n";
print "</head>\n";
print "<body>\n";
print "<h1>Danke</h1>\n";
print "Wir freuen uns, daß Sie unser Formular ausgefüllt \n";
print "haben. Hier zur Kontrolle Ihre Angaben:<p>\n";
Kann mir jemand die genaue Bedeutung und Funktionsweise von
<<__W2__;
und
__W2__
erklären. Um was für eine Anweisung/Befehl handelt es sich hier, und wie ist sie zu verwenden?
Für jegliche Hilfe wäre ich sehr dankbar...
Viele Grüße
Sebastian
Hi !
Kann mir jemand die genaue Bedeutung und Funktionsweise von
<<__W2__;
und
__W2__
__W2__ ist ein sog. Label, einfach eine Markierung bzw. Flag, dass eine gewisse Stelle kennzeichnet!
wenn du also print <<'__W2__'; schreibst heisst das soviel wie schreibe alles von hier weg bis du das Label __W2__ findest in das Ausgabe-Dokument!
Wichtig dabei ist: Wenn du ein Dokument neu anfängst musst du immer zuerst Content-type: text/html ausgeben, und dann zwei Zeilenschaltungen machen. Erst dann kannst du mit <html> anfangen!
Und das Label darf nicht das Letzte Zeichen in deinem Script sein!
Sonst gibts nen Fehler :-(
Kannst auch mal im Archiv stöbern!
Suchbegriff: "Here Dokument"
Grüsse
Bernhard
Hallo Sebastian,
Kann mir jemand die genaue Bedeutung und Funktionsweise von
<<__W2__;
und
__W2__
erklären. Um was für eine Anweisung/Befehl handelt es sich hier,
und wie ist sie zu verwenden?
print <<Name; (....) Name bewirkt, dass der Text zwischen den
Markierungen genauso auch im Browser ausgegeben wird. Dadurch kann
man sich das ständige schreiben von print ""; sparen. Letztendlich
ist es aber egal auf welche Weise man den Text ausgibt.
Ciao,
Tobi
<img src="http://www383.l7.xodox.com/87ba30.gif" alt="Tobi`s Welt" style="cursor:hand;" onmouseup="window.location.href='http://www383.l7.xodox.com'" onmouseover="window.status='http://www.tobi-beck.de';return true;" onmouseout="window.status='';return true">
Hallo,
Kann mir jemand die genaue Bedeutung und Funktionsweise von
<<__W2__;
und
__W2__
erklären. Um was für eine Anweisung/Befehl handelt es sich hier, und wie ist sie zu verwenden?
Das ganze nennt sich 'here-document' und ist recht ausführlich ind 'perldoc perldata' beschrieben.
Ganz kurz Syntax in Zusammenhang mit print:
print <<STRING_DER_DAS_ENDE_MARKIERT
Text mit $variablen, die
interpoliert werden,
und das ganze über viele Zeilen hinweg
STRING_DER_DAS_ENDE_MARKIERT
;
oder
print <<STRING_DER_DAS_ENDE_MARKIERT;
Text mit $variablen, die
interpoliert werden,
und das ganze über viele Zeilen hinweg
STRING_DER_DAS_ENDE_MARKIERT
Wichtig ist dabei, daß der 'STRING_DER_DAS_ENDE_MARKIERT' genau so und nur das in der letzten Zeile steht.
print <<STRING_DER_DAS_ENDE_MARKIERT;
STRING_DER_DAS_ENDE_MARKIERT
bringt eine Fehlermeldung.
Sinn des ganzen ist, daß viel einzelne print-Zeilen den Code bei langen Textausgaben ziemlich unübersichtlich machen können.
Grüße
Klaus