Perl Programmierung - Grundkurs
vordifinierten Variablen dar. Denn sie wird von vielen Operatoren und Funktionen als Defaultvariable eingesetzt.
Ein Beispiel für den Einsatz von $_
#!C:\perl\bin\perl.exe -w
while(<>)
{
chomp;
print;
}
Das Programm liest eine Eingabe von STDIN (Standardeingabekanal). Da keine Variable bei der Leseoperation <> angeben wird, kommt $_ zum Einsatz.
Die Funktion chomp schneidet ein Zeilenendekennzeichen ab. Die Ausgabe erfolgt mit print, wobei auch hier wieder $_ zum Einsatz kommt, da print keine weitere Angabe macht.
Listen
Listendefinition
Die Liste mit ihren Elementen besitzt kein eigenes Präfix. Sie wird durch die öffnenden runden Klammern eingeleitet und aus den einzelnen Werten der Liste aufgebaut.
Dabei können Sie sowohl einzelne konstante Werte angeben als auch skalare Variablen, Arrays oder weitere Listen. Hier ein paar Beispiele:
("Ulrich"; "Clara", "Angelika");
($name1, $name2, $name3);
("Michael", @namen, "Helena");
(1, 2, (3, 4), 5, 6);
Quotierung und Bereichsabkürzung
Mit der Quotierung qw steht ein Hilfsmittel zur Verfügung, dass die Eingabe längerer Listen vereinfachen kann. Generell setzt Perl bei der Quotierung die trennenden Kommata automatisch. Ausserdem werden bei nichtnumerischen Daten auch die doppelten Anführungsstriche gesetzt.
qw(1 2 3 4) -> (1, 2, 3, 4)
qw(a b c d) -> ("a", "b", "c", "d")
Wenn Sie eine Liste von Werten erzeugen wollen, steht Ihnnen der ..-Operator zur Verfügung, mit dem Sie Bereiche angeben:
statt ("a", "b", "c", "d") -> ("a" .. "d")
Oder für numerische Werte:
(1 .. 10, 15, 20 .. 100)
(1.1 .. 2.0)
Listen und Zuweisungen
Listen können bei der Zuweisung sowohl auf der linken als auch auf der rechten Seite des Gleichheitszeichens stehen.
Damit wird folgendes Programmstück möglich, das einen Austauch der Werte in den beteiligten skalaren Variablen sehr leicht möglich macht:
#!C:\perl\bin\perl.exe –w
$a = 1;
$b = 2;
print $a, $b, "\n";
($b, $a) = ($a, $b);
print $a, $b, "\n";
Listenzugriffe
Oft wird eine Liste im Zusammenhang mit einem Array eingesetzt. In dem Fall werden die Listenelemente in das Array übertragen und können mit Hilfe des Arrayzugriffsoperators (Index) ausgelesen werden:
@array = (1, 2, 3);
print $array[0];
Eine weitere Möglichkeit zur Auswertung von Listen besteht darin, die einzelnen Elemente an passende Variablen zu binden und die weiteren Operationen mit diesen Variablen durchzuführen:
($a, $b, $c) = (1, 2, 3);
print $a;
Eine dritte Möglichkeit besteht im Einsatz des Indizierungsoperators, der für Arrays bestimmt ist:
$a = (1, 2, 3)[0];
print $a;
Arrays
Eine weitere wichtige Datenstruktur sind Arrays, die eng mit den Listen verwandt sind. Mit ihnen können gleichartige oder verschiedene Datentypen unter einem gemeinsamen Namen angesprochen werden.
Die einzelnen Elemente des Arrays können nur über einen ganzzahligen numerischen Index angesprochen werden.
Arraydefinition
Arrays werden durch das @-Zeichen identifiziert.
Wertebelegung
Wenn dem Array nicht von Beginn an Werte zugewiesen wurden, ist es ein leeres Array analog zur Zuweisung der leeren Liste ( ) :
@a = ( );
@a = ("a", "b", "c");
Um ein Array auf die Grösse 0 zurückzusetzen, weisen Sie ihm die Leere Liste zu:
@array = ( );
oder Sie wiesen seiner Länge den Wert –1 zu:
$#array = -1
Arrayindex
Standardmässig beginnt der Arrayindex bei 0 und geht für ein Array der Grösse N bis N-1.
Den Startwert kann man allerdings verändern, indem der Variablen $[ ein anderer Startwert zugewiesen wird, der für alle Arrays gilt! Mit der skalaren Variable $#array erhalten Sie den Index des letzten Wertes zurück und können so, unter Kenntnis des Indexwertes der ersten Position, die Grösse des Arrays bestimmen.
#!C:\perl\bin\perl.exe –w
@a = (1, 2, 3);
print $#a . "\n";
$a[10] = 9;
print $#a . "\n";
print @a . "\n";
Arrayzugriffe
Der Zugriff auf ein Arrayelement erfolgt mit Hilfe der eckigen Klammern, zwischen denen der Indexwert der gewünschten Position steht:
Beim Zugriff auf die einzelnen Arrayelemente
Weitere Kostenlose Bücher