base
portal
Suche:
Forum
Start
Neue Seite erstellen
Titel:
Um in baseportal innerhalb eines eigenen Programms (<span class=html><perl></span>...<span class=html></perl></span>) etwas auszugeben, benötigen sie den Befehl <c>out</c> Das <c>out</c> ist der Pendant zum Perl-Befehl <c>print</c> und wird prinzipiell genauso eingesetzt. Beachten Sie, dass Sie innerhalb dieses Befehls normalerweise <b>keine</b> weiteren Perl-Befehle einsezten können. Einzig und allein <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> werden mit ihren Werten ausgegeben (s.unten) <code><var>$x</var>=5; out <var>$x</var>; </code> Dies gibt den Wert der <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> <c>x</c> aus, also die Zahl <c>5</c>. Um einen beliebigen Text auszugeben müssen Sie diesen in Anführungsstrichen setzen: <code>out "Hallo, Welt!"; </code> Sie können in diesem Fall auch einfache Anführungsstriche benutzen: <code>out 'Hallo, Welt!'; </code> Die Ausgabe ist dieselbe: <c>Hallo, Welt!</c> Der Unterschied zwischen einfachen und doppelten Anführungsstrichen ist, dass <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> und andere besondere Zeichenfolgen (wie z.B. das <c>\n</c> für den Zeilenumbruch) in doppelten Anführungsstrichen durch den eigentlichen Wert ersetzt werden. In einfachen Anführungsstrichen geschieht dies <b>nicht</b>: <code><var>$x</var>=5; out 'x hat den Wert <var>$x</var>\n\nTest'; </code> würde genau dies ausgeben: <code>x hat den Wert <var>$x</var>\n\nTest </code> während <code><var>$x</var>=5; out "x hat den Wert <var>$x</var>\n\nTest"; </code> folgendes ausgibt: <code>x hat den Wert 5 Test </code> Probleme gibt es in beiden Fällen, wenn man die jeweiligen Anführungsstriche selbst innerhalb des Textes schreiben will. Hierfür gibt es jedoch eine Lösung: Sie müssen den Anführungsstrich, der ja sonst das Ende des Textes markiert besonders kennzeichnen. Dies erfolgt mit dem <c>\</c>-Zeichen, <i>Backslash</i> ("umgedrehter Schrägstrich") oder auch <i>Escape</i>-Zeichen (da Sie damit vor der eigentlichen Bedeutung "flüchten") genannt: <code>out 'Er sagte: "Jetzt schlägt\'s 13 !"';</code> oder mit doppelten Anführungszeichen: <code>out "Er sagte:\"Jetzt schlägt's 13 !\""; </code> Ebenso können Sie innerhalb der doppelten Anführungszeichen die Variablenersetznug verhindern: <code>out "Wert von \<var>$x</var>: <var>$x</var>"; </code> Benötigt man viele Zeilen Ausgabe hintereinander so ist es uneffizient, dafür viele "out"-Befehle zu verwenden: <code> out "Zeile1...."; out "Zeile2...."; out "Zeile3...."; ...</code> Viel besser ist folgende Schreibweise: <code>out <<EOF; Zeile1... Zeile2... Zeile3... ... EOF </code> Anführungsstriche müssen darin nicht "escaped" werden; <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> werden aber ersetzt. Will man keine Variablenersetzung, so muss man das <c>EOF</c> mit einfachen Anführungsstrichen umschliessen (<c>out <<'EOF'; ... EOF</c>), was man aber selten braucht. Statt <c>EOF</c> können Sie übrigens auch einen beliebigen anderen Text verwenden, z.B. <c>AUSGABE</c> oder <c>BIS_ZUM_ENDE</c>. <c>EOF</c> wird aber üblicherweise genommen. Oft hat man innerhalb langer Textausgaben einzelne Texte die von einer Bedingung abhängen. Es ist dann sehr unschön, das <c>EOF</c> jedesmal zu unterbrechen. Besser ist es, eine <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variable</a> mit den nötigen Texten je nach Bedingung zu belegen und diese dann an der Ausgabestelle einzubinden: <code>my <var>$mehrzahl</var>=""; <var>$mehrzahl</var>="en" if <var>$anzahl</var>!=1; out <<EOF; ... Es sind <var>$anzahl</var> Person<var>$mehrzahl</var> anwesend. ... EOF </code> Ein oft nützlicher Trick ist es auch, Ausgaben nicht sofort zu machen, sondern erst in einer <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> zu sammeln: <code>get "Datum>jetzt-14", "konten"; while(get_next) { <var>$out</var>.="Eingang am <var>$Datum</var>: <var>$Betrag</var><span class=html><br></span>"; <var>$Summe</var>+=<var>$Betrag</var>; } out "<span class=html><b></span>Summe: <var>$Summe</var><span class=html></b></span><span class=html><p></span><var>$out</var><span class=html></p></span>"; </code> Hier wird die eigentliche Ausgabe erst in der <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> <var>$out</var> gesammelt und erst später nach der Summe ausgegeben. Dadurch erspart man sich ein unnötiges zweites Abfragen der Datenbank, da die Summe aller Einträge ja vor den Einträgen selbst ausgegeben werden soll. Dies funktioniert übrigens auch, wenn man dabei für längere Texte ein <c><<EOF; ... EOF</c> verwendet: <code><var>$out</var>.= <<EOF; ... EOF </code> Fügt der <a title="Erläuterung zu Variablen" href="http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&cmd=do_mod&id=64" target="_blank">Variablen</a> <c>out</c> den gesamten Text zwischen den beiden <c>EOF</c>s hinzu.
Name:
Passwort:
Stichworte:
Version:
1
2
3 Angebot:
Alle
Nur Miete / Lizenz
Nur Miete / Lizenz professional
Nur Miete
Nur Miete smart + pro
Nur Miete smart + pro / Lizenz
Nur Miete pro
Nur Miete ab pure2, smart2, pro1
Nur Lizenz
Nur Lizenz professional
Nur Kostenlos
Ohne Änderungen zurück zur Seite
-
+
©
baseportal
GmbH. Alle Rechte vorbehalten.
powered in 0.00s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!