[Next] [Up] [Previous] [Contents] [Index]
Next: perldoc Up: Perl Previous: Das Skript

Ausgabe

    Wie wir schon gesehen haben, können wir mit print Zeichenketten auf STDOUT ausgeben. Betrachten wir das folgende Beispiel:  
print "Guten","Tag","\n"
print "Guten Tag\n";

Ausgabe:
GutenTag
Guten Tag
Die in Hochkommata geschriebenen und durch Kommata getrennten Zeichenketten werden an die Funktion print übergeben. Um Leerzeichen auszugeben müssen diese innerhalb der Hochkommata stehen. Die Escape-Sequenz n muß in Hochkommata stehen. Im zweiten Fall wird die gesamte Zeichenkette ausgeben.
print Guten, Tag, "\n";

Ausgabe:
No comma allowed after filehandle at ././hello.pl line 3.
Wenn die Zeichenkette nicht in Hochkommata angegeben wird, muß der Dateihandle STDOUT angegeben werden. Ansonsten versucht die Funktion print das erste Wort als Dateihandle zu benutzen. Ein Komma hinter einem Dateihandle ist nicht erlaubt. Es wird nur zum Trennen von Zeichenketten verwendet.
print STDOUT Guten, Tag, "\n";

Ausgabe:
GutenTag
Als nächsten wollen wir uns Literale in PERL anschauen:  
#Programm zur Ausgabe von Literalen
print "Der Preis ist $100.\n";
print "Der Preis ist \$100.\n";
print "Der Preis ist $",100,"\n";
print "Die Zahl ist ",0777,"\n";
print "Die Zahl ist ",0xAbcF,"\n";
print "Die unformatierte Zahl ist ",14.56,"\n";

Ausgabe:
Der Preis ist .
Der Preis ist $100.
Der Preis ist $100.
Die Zahl ist 511.
Die Zahl ist 43983.
Die unformatierte Zahl ist 14.560000
Die Zeichenkette "Der Preis ist $100" steht in doppelten Hochkommate. Das Dollarzeichen ist für Perl ein besonderes Zeichen, mit dem skalare Variablen referiert werden. Da es aber keine Variable $100 gibt, wird nichts ausgegeben. Um das Dollarzeichen vor Interpretation zu schützen, kann man einen Backslash vor das Zeichen schreiben oder die ganze Zeichenkette in einfache Hochkommata schreiben.
In Zeile 3 wird die 100 als numerisches Literal und nicht als Zeichenkette behandelt. Zeile 4 und 5 zeigen wie man Zahl im Oktal- (mit vorangestellter 0) und Hexadezimal-Format (mit vorangestelltem 0x) in Perl angibt. Die Zahl, dargestellt als 14.56, wird mit sechs Nachkommastellen ausgegeben. Die Funktion print formatiert die Ausgabe nicht.
Kommen wir nochmal auf die einfachen Hochkommata [+] zurück:
print "***\tin double ticks\t***\n";
print '***\tin single ticks\t***\n";
print "\n";

Ausgabe:
***	in double ticks	***
***\tin single ticks\t***\n
    In double ticks eingeschlossene Zeichenketten werden interpoliert. Die Backslash-Zeichen werden interpretiert (und auch noch einiges mehr); bei single ticks hingegen kommt es nicht zu einer Interpolation. Noch ein Beispiel:
print "\a\t\tDie \UZahl\E \LiST\E ",0777,".\n";

Ausgabe:
(PIEPS)		Die ZAHL ist 511.
    Das a erzeugt einen Ton[+], gefolgt von zwei Tabulatoren (t). Die Zeichenkette Zahl wird in Großbuchstaben ausgeben, bis ein E erreicht wird. Die Zeichenkette iST wird in Kleinbuchstaben ausgegeben, analog zum U wirkt hier das L bis zum nächsten E.

  Eine formatierte Ausgabe erreicht man mit der Funktion printf, die völlig analog zu ihrer C-Verwandtschaft arbeiten. Hier darum nur ein paar unkommentierte Beispiele:

#!/usr/bin/perl -w
printf "Viele Gruesse von %s!\n","Sam McGoo";
printf ("%-15s%-20s\n","Jack","Sprat");
printf "Die Zahl im Dezimalformat ist %d\n",45;
printf "Die formatierte Zahl ist |%10d|\n",100;
printf "Die Zahl mit vorangestellten Nullen ist |%010d|\n",5;
printf "Die linksbuendige Zahl ist |%-10d|\n", 100;
printf "Die oktale Zahl ist %o\n", 15;
printf "Die hexadezimale Zahl ist %x\n", 15;
printf "Die formatierte Gleitkommazahl ist |%8.2f|\n", 14.3456;
printf "Die Gleitkommazahl ist %8f\n", 15;
printf "Das Zeichen ist %c\n",65;

Ausgabe:Viele Gruesse von Sam McGoo!
Jack           Sprat
Die Zahl im Dezimalformat ist 45
Die formatierte Zahl ist |       100|
Die Zahl mit vorangestellten Nullen ist |0000000005|
Die linksbuendige Zahl ist |100       |
Die oktale Zahl ist 17
Die hexadezimale Zahl ist f
Die formatierte Gleitkommazahl ist |   14.35|
Die Gleitkommazahl ist 15.000000
Das Zeichen ist A


[Next] [Up] [Previous] [Contents] [Index]
Next: perldoc Up: Perl Previous: Das Skript


Tue Dec 7 13:01:45 MET 1999