base
portal
Suche:
Forum
Start
Neue Seite erstellen
Titel:
Um in baseportal innerhalb eines eigenen Programms <c><perl>..</perl></c> etwas auszugeben, benötigen sie den Befehl <c>out</c>. <c>out</c> ist der Pendant zum Perl-Befehl <c>print</c> und wird prinzipiell genauso eingesetzt. 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 <i>Variablen</i> in doppelten Anführungsstrichen durch den eigentlichen Wert ersetzt werden. In einfachen Anführungsstrichen geschieht dies <b>nicht</b>: <code>$x=5; out 'x hat den Wert $x'; </code> würde genau dies ausgeben: <code> x hat den Wert $x </code> während <code>$x=5; out "x hat den Wert $x"; </code> folgendes ausgibt: <code>x hat den Wert 5</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 Variablenersetzung verhindern: <code> out "Wert von \$x: $x"; </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; Variablen 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. Beachten Sie, dass das <c>EOF</c> zum Beenden der Ausgabe alleine und am Anfang der Zeile stehen muss. 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 Variable mit den nötigen Texten je nach Bedingung zu belegen und diese dann an der Ausgabestelle einzubinden: <code> my $mehrzahl=""; $mehrzahl="en" if $anzahl<!=1; out <<EOF; ... Es sind $anzahl Person$mehrzahl anwesend. ... EOF </code> Ein oft nützlicher Trick ist es auch, Ausgaben nicht sofort zu machen, sondern erst in einer Variablen zu sammeln: <code> get "Datum>jetzt-14", "konten"; while(get_next) { $out.="Eingang am $Datum: $Betrag<span class=html><br></span>"; $Summe+=$Betrag; } out "<b>Summe: $Summe</b><p>$out</p>"; </code> Hier wird die eigentliche Ausgabe erst in der Variablen <c>$out</c> 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> $out.=<<EOF; ... EOF </code> Fügt der Variablen <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.01s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!