HTML & CSSJavascriptPerlPHPIndex | Download | Suche 

SYNTAX
Allgemeines | Konstanten | Variablen | Zeichenketten | Zahlen | Operatoren | Kontrollstrukturen | Funktionen, Subs | Bibliotheken | Ein- und Ausgabe | Dateien lesen& schreiben | Suchen& ersetzen | reguläre Ausdrücke | Module
WEITERES Beispiel- Perlscripts | Links zum Thema Perl


Variablen, Datentypen


Skalare

Variablen, denen man einen einfachen Wert zuweist, nennt man Skalare (oder auch nur Variablen). Es sind Zahlen oder Zeichenketten erlaubt, wobei letztere in Anführungszeichen gesetzt werden (doppelte oder einfache, siehe vorheriges Kapitel).
Die Definition eines Skalars beginnt mit einem Dollarzeichen, gefolgt von dem selbstgewählten Namen für den betreffenden Skalar. Das Dollarzeichen muss auch gesetzt werden, wenn die Variable 'nur' als Teil einer Operation vorkommt.

Beispiele:

#!/usr/bin/perl
$Wert = 675954;
$Quadratwurzel = sqrt($Wert);
print $Quadratwurzel;

#!/usr/bin/perl
$Wert = 43538343;
$Teilwert = substr($Wert,2,4);
print $Teilwert;

substr = Teilzeichenmenge extrahieren , im obigen Beispiel ab dem 3. Zeichen (2,4- beim Zählen wird mit 0 angefangen!) 4 Zeichen lang: Ergebnis: 43538343 -> 5383.



Arrays (Listen)

"Arrays (Listen) sind Ketten zusammengehöriger Skalare. In Perl haben solche Listen zentrale Bedeutung, weil es sehr einfach ist, Daten in Listen einzulesen und Listen zu manipulieren." (Zitat SelfHTML- Arrays)

Beispiele:

#!/usr/bin/perl
@Daten = ('Martin',23,'Berlin','Abitur');
#oder: @Daten = ("Martin",23,"Berlin","Abitur");
print $Daten[0], " ist ", $Daten[1], " Jahre alt, wohnt in ", $Daten[2], " und hat ", $Daten[3];


#!/usr/bin/perl
for($i = 1;$i <= 7;$i++)
{
$Wert = $i * $i;
push(@Quadrate, $Wert);
}
for(@Quadrate)
{
print $_, "\n";
}


#!/usr/bin/perl
@Buchstaben = ("a".."z");
@Zahlen1 = (6..100);
print $Buchstaben[3], "\n";
Anmerkungen

Beispiel:

#!/usr/bin/perl

@vector = (2,4,6,8,10,12);
@slice = @vector;                  # (2,4,6,8,10,12)
@slice = @vector[2,4];             # (6,10)
@slice = @vector[3..5];            # (8,10,12)


Arrays manipulieren

Mit Perl kann man:



Hashs (assoziative Arrays)

Ein Hash ist eine Liste, die jeweils aus Name-Wert- Paaren besteht. Während bei einfachen Arrays die einzelnen Listenpunkte über eine Nummer ansprechbar sind (z.B. $Daten[2] = 3. Element des Arrays @Daten), erfolgt dies bei Hashs über den dazugehörigen Namen (z.B. $Daten('Name')):

Beispiel:

#!/usr/bin/perl
%Daten = ('Name','Martin','Alter',23,'Ort','Berlin');
# oder (seit Perl V5): Zuweisung durch =>, wobei der Wert als String interpretiert wird, also: %Daten = ('Name'=>'Martin','Alter'=>23,'Ort'=>'Berlin'); print $Daten{'Name'}, " ist ", $Daten{'Alter'}, " Jahre alt und wohnt in ", $Daten{'Ort'};
ergibt:
Martin ist 23 Jahre alt und wohnt in Berlin

Hashs werden mit einem Prozentzeichen % eingeleitet (Arrays mit einem @).



Referenzen

Siehe: Referenzen SelfHTML (werden ab Perl-Version 5.0 interpretiert).



Vordefinierte Variablen

In Perl gibt es eine Reihe von vordefinierten Variablen, welche einen bestimmten Wert zurückliefern. CGI stellt ebenfalls eine Reihe von Variablen zur Verfügung.


CGI- Umgebungsvariablen

Diese werden je nach Programmiersprache angesprochen. Bei Perl gilt:

$ENV{'Umgebungsvariable'}
Variable Erläuterung
CONTENT_LENGTH Länge des Strings, welcher bei der POST- Methode übergeben wird.
CONTENT_TYPE Mime- Type der Daten, welche bei der POST- Methode übergeben werden. Typisch für Formulare: application/x-www-form-urlencoded .
GATEWAY_INTERFACE Version des beim Server installierten CGI-Interfaces (Bsp.: CGI/1.1).
HTTP_ACCEPT Mime-Types, welche der Browser akzeptiert.
HTTP_REFERER URL der Seite, von der das Script aufgerufen wurde. Wird nicht von allen Browsern übermittelt.
HTTP_USER_AGENT Informationen zum Browser (Marke,Version,etc.)
PATH_INFO Informationen zum Pfad, falls das Script mit GET aufgerufen wird (relativ zu den im Server gesetzten Roots)
PATH_TRANSLATED Analog zu PATH_INFO, jedoch der Verzeichnisstruktur nach
QUERY_STRING Übermittelte Daten, falls das Script mit GET aufgerufen wird. application/x-www-form-urlencoded-kodiert.
REMOTE_ADDR IP- Adresse des Servers, über den das Script aufgerufen wird, falls es nicht derjenige ist, auf welchem das Script liegt. Wird nicht immer geliefert.
REMOTE_HOST Analog zu REMOTE_HOST, jedoch Domain statt IP.
REMOTE_IDENT Informationen zum Protokoll, falls der Server das Protokoll ident unterstützt.
REMOTE_USER Benutzernamen, welcher das Script aufgerufen hat. Nur, falls Server-Authentifizierung ein.
REQUEST_METHOD Enthält GET oder POST, je nachdem welche Art für das Übermitteln der Daten gewählt wurde.
SCRIPT_NAME URL des Scripts relativ zur Domain (Bsp.: /cgi-bin/da.cgi)
SERVER_NAME Name oder IP des Servers, auf welchem das Script liegt.
SERVER_PORT Portnummer des Servers (meistens 80).
SERVER_PROTOCOL Version des HTTP-Protokolls (Bsp.: HTTP/1.0)
SERVER_SOFTWARE Name der Server-Software.


Perl- eigene Variablen

Die folgende Liste ist nicht vollständig!

Variable Erläuterung
Skalare
$_ Aktueller Wert (Bsp.: @alphabet = (a..z); for(@alphabet){print $_, "\n";}).
$. Anzahl Zeilen der eingelesenen Datei.
$/ Eingabeseperator.
$] Version des installierten Perl-Interpreters.
$! aktuelle Fehlermeldung.
$0 Name des Scripts.
$$ Prozess-ID des Scripts.
$^T Zeitpunkt in msec, bei welchem das Script gestartet wurde.
$& Nach Anwenden eines regulären Ausdrucks: Wert, auf welchen das Suchmuster passt.
$+ Nach Anwenden eines regulären Ausdrucks mit Klammern: Inhalt der Klammer, auf welche das Suchmuster passt.
$1,$2,... Analog zu $+, liefert jedoch einzelne Fundstellen und nicht die letzte zurück.
Arrays
@_ Liste der bei einer Subroutine übergebenen Parameter. Einzelne Parameter sind ansprechbar mit $_[0],$_[1] etc.
@ARGV Parameter, die beim Aufruf des Scripts übergeben wurden.
Hashs
%ENV Komplette Rechnerumgebung.
Umgebungsvariablen (ansprechen mit $ENV{'Umgebungsvariable'} !)
HOME Directory, zu dem gesprungen werden soll, falls eine chdir- Anweisung fehlt (Unix).
PATH Directories, welche nach ausführbaren Programmen durchsucht werden sollen.