Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Operationen auf Skalare Variablen Hash »

Arrays

Ein Array ist eine Folge von Skalaren. Wird ein Array als Konstante dargestellt, sind es einfach Werte, die durch Kommata voneinander getrennt werden und von einer runden Klammer umgeben sind. Der Name einer Arrayvariablen, die eine solche Liste aufnimmt, wird mit dem Zeichen @ eingeleitet.

[Arrays]
my @primzahlen = (1,2,3,5,7,11,13,17,19);
my @namensliste = ("Karl", "Friedrich", "Hans");

Die Werte innerhalb einer solchen Klammer müssen nicht gleichartig sein. Es können alle Skalare bunt gemischt auftreten. Sie müssen nicht einmal als Konstanten auftreten, es können auch Variablen eingesetzt werden.

Um auf ein Element einer Arrayvariablen zuzugreifen, wird der Variablen in eckigen Klammern der Index des referenzierten Elements angefügt. Der Index beginnt bei 0. Beim Referenzieren wird auf ein Element des Arrays und nicht auf das gesamte Array zugegriffen. Die Elemente eines Arrays sind aber Skalare. Konsequenterweise wird einem Element eines Arrays auch wieder ein $ vorangestellt.

$wert = $primzahlen[4];

In diesem Fall wird das fünfte Element, also die 7 in die Variable $wert kopiert. Es ist nicht das vierte Element, da die Indizes bei 0 beginnen. Perl kann aber auch mehrere Elemente eines Arrays in ein anderes Arrays kopieren. In diesem Fall, werden die einzelnen Indizes in der eckigen Klammer in der gewünschten Reihenfolge aufgezählt und durch Kommata getrennt.

@werte = @primzahlen[4,3,1];

Damit enthält das Array @werte den Wert (7, 5, 2). Wenn dieser Vorgang für den Programmierer anderer Sprachen schon ungewöhnlich wirkte, dann wird die Möglichkeit, mit einer Zuweisung Werte in mehrere Variablen zu schieben, zur äußerst praktischen Kuriosität.

($erst, $zweit, @neuprimzahlen) = @primzahlen;

Hier wird das erste Element des Arrays @primzahlen der Skalarvariablen $erst, das zweite der Skalarvariablen $zweit und der Rest des Arrays @primzahlen dem Array @neuprimzahlen zugewiesen. Das heißt, dass dem Array @neuprimzahlen die Werte 1 und 2 fehlen und ansonsten die restlichen Werte von @primzahlen hat.

Den umgekehrten Weg erreichen Sie mit der nützlichen Funktion split(). Mit ihr können Sie eine Zeichenkette in ein Array aufbrechen. Die Bruchstelle wird durch ein frei wählbares Zeichen festgelegt. Diese Funktion erleichtert beispielsweise die Analyse von CGI-Übergabedaten sehr. Das folgende Beispiel teilt einen Satz in seine Worte an den Stellen auf, wo ein Leerzeichen steht.

@wort = split(/ /, $satz);

Der erste Parameter ist das Leerzeichen, das durch beliebige Zeichen eingeschlossen werden kann. Üblicherweise verwendet man Anführungszeichen oder Schrägstriche. $wort[0] hat anschließend das erste Wort von $satz, $wort[1] das zweite und so weiter.

Eine kleine Spielerei soll als Beispiel dienen. Mit der Funktion split() wird ein Namen an der Stelle, wo sich Leerzeichen befinden aufgespalten. Das erste Element ist dann der Vorname und das zweite ist der Nachname.

[Namenszerlegung]
#!/usr/bin/perl -w
$ask = <STDIN>;
chomp($ask); # wirf den Zeilenvorschub weg!
@name = split(/ /, $ask);
print $name[0]."n";
print $name[1]."n";

Da es Menschen gibt, die mehr als einen Vornamen besitzen, ist die Ermittlung des Nachnamens nicht besonders zuverlässig. An sich brauchen wir nicht das zweite, sondern das letzte Element des Arrays. Hier die Änderung für die letzte Zeile.

print $name[$#name]."n";

Die Zeichenkombination $# ermittelt den höchsten Index eines Arrays. Dieser Wert ist also um eins geringer als die Dimension des Arrays. Die beiden Zeichen werden dem Namen des Array statt des Zeichens @ vorangestellt. Ein leeres Array liefert -1. Im Beispiel oben wird dies als Index für das letzte Element verwendet. Die Dimension eines Arrays kann auch ermittelt werden, indem eine direkte Zuweisung eines Arrays an einen Skalar durchgeführt wird. Da ein Skalar ein Array nicht aufnehmen kann, geht Perl davon aus, dass der Programmierer die Dimension ermitteln will.



« Operationen auf Skalare | Variablen | Hash »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de