GUI mit Perl/Tk

Tutorial

Skalare Variablen

Die elementarsten Variablen in Perl sind die skalaren Variablen. Skalare Variablen können Zahlen und Strings beinhalten und - je nach Kontext - werden sie als Zahlen oder Strings interpretiert. Vor dem eigentlichen Namen muss immer ein $-Zeichen stehen.

Im folgenden Beispiel wird der Variablen $priority den Wert 9 zugeordnet:

$priority = 9;

Es ist aber auch möglich der genau gleichen Variablen einen String zuzuordnen:

$priority = 'high';

Perl akzeptiert auch Zahlen als Strings:

$priority = '9';
$default = '0009';

Damit können problemlos auch arithmetische Operationen ausgeführt werden.

Variablennamen können aus Buchstaben, Zahlen und Unterstrich zusammengesetzt werden. Sie sollten jedoch nicht mit einer Zahl beginnen und die Variable $_ hat eine spezielle Bedeutung. Perl unterscheidet zwischen Groß- und Kleinschreibung, dh. $a und $A sind verschieden.

Wenn du eine Variable zum allerersten Mal verwendest, musst du sie im Programm über das Schlüsselwort my bekannt machen. Danach kannst (bzw. musst du auch) du die Variable ohne my verwenden.

#!perl
use strict;
use warnings;

my $mein_variablenname = 'Diese Zeichenkette ist der Wert der Variable';
$mein_variablenname = 'Jetzt hat die Variable einen anderen Wert';
$mein_variablenname = 'Und jetzt wieder einen anderen Wert.';

print $mein_variablenname;

Operationen und Zuweisungen

Perl bietet sehr viele Operatoren an. Einige davon sind:

$a = 1 + 2;	# Addiere 1 und 2 und speichere Resultat in $a
$a = 3 - 4;	# Subtrahiere 4 von 3 ...
$a = 5 * 6;	# Multipiziere 5 und 6
$a = 7 / 8;	# Dividiere 7 mit 8 ($a = 0.875)
$a = 9 ** 10;	# Neun hoch zehn
$a = 5 % 2;	# % MOD 2
++$a;		# Inkrement $a, Rückgabe von $a
$a++;		# Rückgabe von $a, Inkrement $a
--$a;		# Dekrement $a, Rückgabe von $a
$a--;		# Rückgabevon $a, Dekrement $a

Für Strings gibt es unter anderem:

$a = $b . $c;	# Konkateniere $b und $c
$a = $b x $c;	# Füge $b $c-mal zusammen

Zuweisungen:

$a = $b;	# $a wird $b
$a += $b;	# $a wird um $b vergrössert. Kurzform für $a = $a + $b;
$a -= $b;	# $a wird um $b verkleinert. Kurzform für $a = $a - $b;
$a .= $b;	# $a wird mit $b konkateniert. Kurzform für $a = $a . $b;

Bei der Zuweisung $a = $b macht Perl eine Kopie von $b und weist diese $a zu. Eine darauffolgende Änderung von $b ändert $a nicht.

Weitere Operatoren sind im perlop-Manual beschrieben.

Substitution

Folgende Programmzeilen sollen apples and pears ausgeben. Wir wollen den Operator für Konkatenation verwenden:

$a = 'apples';
$b = 'pears';
print $a.' and '.$b;

Es wäre schöner, nur einen String im print statement zu verwenden, aber mit

print '$a and $b';

erhalten wir genau $a and $b, was nicht unserem Wunsch entspricht. Die Verwendung von doppelten Anführungszeichen veranlasst Perl die Variablen aufzulösen (engl. interpolation):

print "$a and $b";

Daneben werden auch Spezialzeichen wie \n und \t aufgelöst. \n ist ein Zeilenumbruch und \t ist ein Tabulator.


Übung

Wir schreiben das Hello-World-Programm um, sodass (a) der String einer Variablen zugeordnet wird und (b) diese Variable mit anschliessendem Zeilenumbruch ausgegeben wird. Wir benützen doppelte Anführungszeichen und nicht den Operator für Konkatenation.

Top