![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Neue SerieEinführung in PERL Ivon Achim Schmidt |
![]() |
PERL ist eine Abkuerzung fuer Practical Extraction and Report Language und wurde von Larry Wall entwickelt. Ziel der Entwicklung war eine Sprache, welche sowohl die typischen Programmiermethoden wie Verzweigungen, Kontrollstrukturen und Schleifen enthaellt, als auch leistungsfaehige Recherche- und Ersetzungsfunktionen aufweist. Die so entstandene Sprache gleicht einer Mischung aus C, AWK und SED. Im Gegensatz zu C ist sie jedoch keine Compilersprache im herkoemmlichen Sinn. Die Programme liegen im Quelltext (gewoehnliche ASCII Datei) vor und werden unmittelbar vor der Ausfuehrung compiliert. Diese Ausfuehrungsart het den Vorteil, dass die Programme zum einen eine brauchbare Ausfuerhungsgeschwindigkeit haben, jedoch immernoch leicht editierbar und vor allem hochprotabel sind. Der Nachteil gegenueber einer reinen Compilersprache ist der Verlust von Ausfuehrungszeit, welche jedoch nicht bei allen Funktionen zu Buche schlaegt.
PERL selbst ist Public Domain Software und liegt auch im Sourcecode vor. Diesem Umstand ist auch die weite Verbreitung von PERL zu verdanken. Denn PERL gibt es mittlerweile fuer nahezu jedes Betriebssystem.
Fangen wir einmal mit einem klassischen Programmierbeispiel an und leiten von diesem dann den Grundaufbau eines PERL Programmes ab:
#!/usr/bin/perl ############################################# ## ## Perlkurs Linuxmagazin Teil 1 ## ## 1. Hello World ## ## { print "Hello World \n"; }
Das Doppelkreuz ( # ) ist uebrigens das Kommentarzeichen in PERL. Alles was hinter ihm steht wird bei der Programmausfuehrung nicht beachtet. Als naechstes faellt ein Programmblock auf, welcher in geschweifte Klammern ( {} ) eingeschlossen ist. Die Geschweiften Klammern sind die Blockbegrenzer in PERL. Sie umgeben sowohl Programmteile wie Haupt und Unterprogramme als auch Bloecke fuer Schleifen, Kontrollstrukturen u.s.w. .
Als reine Programmieranweisungen ist lediglich der print - Befehl implementiert. Was hinter der Printanweisung, eingeschlossen von Anfuehrungszeichen steht, wird auf der Standardausgabe ausgegeben. Das \n am Ende des Ausgabetextes bewirkt uebrigens einen Zeilenwechsel und Wagenruecklauf, so dass die naechste Ausgabe in der naechsten Zeile am linken Bildschirmrand beginnt.
Alles in allem Schreibt dieses erste Programm den Text "Hello World" auf den Monitor und beendet dann seinen Programmlauf
Desweiteren ist noch zu erwaehnen, dass in PERL jede Zeile mit einem Semikolon ( ; ) abgeschlossen wird und dass PERL Case Sensitiv ist, also Gross- und Kleinschreibung unterscheidet, auch in den Befehlswoertern.
Beispiel: demo1-1a.pl
#!/usr/bin/perl ############################################# ## ## Perlkurs Linuxmagazin Teil 1 ## ## 1. Hello World ## ## { print "Hello World \n"; print 'Hello World \n'; print "\n\n"; }Dies produziert dann folgende Ausgabe:
Die erste Ausgabe, wird mit Interpretation des CRs ausgefuert, waehrend die zweite Ausgabezeile das Steuerzeichen als Textinterpetiert und mit ausgibt. Die dritte Ausgabezeile dient lediglich dazu, die Ausgabe leserlicher zu machen, in dem zwei Zeilenumbrueche ausgegeben werden.
Daneben kennt der print Befehl jedoch noch eine Menge weiterer Steuerzeichen. Folgende Tabelle zeigt die wohl wichtigsten:
Steuerzeichen Bedeutung \" Anfuehrungszeichen \\ Backslash \n newline \r Return \f form feed \t Tabulator (horizontal) \v Tabulator (vertikal) \b Backspace \a Beep \e Escape \x41 Hexadezimaler Wert
Die Zuweisung eines Wertes in eine Variable geschieht durch das Gleichheitszeichen als Operator.
$zahl = 1 ;
weisst der Variablen $zahl nun den Wert 1 zu. Automatisch wird der numerische Inhalt der Variablen erkannt und der entsprechende Typ (numerik) gesetzt. Soll die Variable nun mit dem Wert 1 als String initialisiert werden, so braucht der Wert nur in Anfuerhungszeichen gesetzt zu werden.
Um nun einer Variablen einen von der Tastatur eingegeben Wert zuzuseisen, weisen wir Ihr einfach die Standardeingabe zu. Die Standardeingabe wird in PERL mit dem Operator
Beispiel: demo1-2.pl
Sie sehen nun jedoch auch noch einen weiteren Befehl im Beispielprogramm, naemlich die Zeile chop ($eingabe). Der Befehl chop schneidet das letzte Zeichen eines Strings ab, in diesem Fall das zum Eingabeende gedrueckte Returnzeichen. Somit steht anschliessend noch der reine String in der Variablen.
In der weiteren Zeile wird dann der Eingabewert, welche ja in der Variablen $eingabe gespeichert wurde, umgeben von etwas ergaenzendem Text wieder ausgegeben.
Alle anderen arithmetischen Operationen funktionieren analog zu dem gezeigten Beispiel, es ist nur der jeweils gewuenschte Operator zu benutzen. PERL haellt dabei folgende arthmetische Operatoren bereit:
Beispiel: Programm zur einfachen Prozentrechnung (demo1-4.pl)
In diesem Beispiel wurde zur Berechnung des Ergebnises eine mathematische Formel herangezogen. Wie sie sehen, ist auch eine solche Implementierung mittels PERL sehr einfach zu loesen. Damit sollten Sie nun in der Lage sein, auch komplexere arithmetische Operationen in PERL durchzufuehren.
Neben diesen Operatoren haellt PERL auch noch eine Reihe mathematischer funktionen bereit:
Diese Funktionen werden, ebso wie die arithmetischen Opreatoren einfach innerhalb einer Wertzuweisung benutzt:
Copyright © 1997 Linux-Magazin Verlag
#!/usr/bin/perl
#############################################
##
## Perlkurs Linuxmagazin Teil 1
##
## 2. Einfache Ein- und Ausgabe
##
##
{
print "Bitte geben Sie Ihren Namen ein: ";
$eingabe =
Einfache mathematische Operationen
Selbstverstaendlich koennen in PERL, wie in jeder anderen Programmiersprache auch, mathematische Berechnungen durchgefuehrt werden. PERL haellt dazu die wichtigsten arithmetischen Operatoren bereit. Sie werden einfach in Variablenzuweisungen benutzt. Sehen wir uns dazu einmal folgendes Beispiel an (demo1-3.pl):
#!/usr/bin/perl
#############################################
##
## Perlkurs Linuxmagazin Teil 1
##
## 3. Addition zweier Zahlen
##
##
{
print "\n\nAddition zweier Zahlen \n";
print "======================\n\n";
print "1. Zahl: ";
$zahl1 =
Das Programm addiert zwei frei waehlbare Zahlen, welche ueber die Tastatur eingegeben werden koennen und gibt das Ergebnis nach dessen Berechnung ( $ergebnis = $zahl1 + $zahl2; ) auf der Standardausgabe, umgeben von etwas Begleittext wiederum aus (Bild 1.3)
Operator Operation
+ Addition
- Subtraktion
* Multiplikation
/ Division
% Modulo
** Potenzbildung
++ Inkrement (Erhoehen um 1)
-- Dekrement (Verringern um 1)
Analog zur Programmiersprache C kann PERL Zahlen vor oder nach einer Ausfuerung erhoehen. Dies wird durch die Lokation des Operanden gekennzeichnet. So gibt die Anweisung 'print $i++' zuerst den aktuellen Wert von $i aus und inkementiert anschliessend, waehrend 'print --$i' $i zuerst dekrementiert und anschliessend ausgibt.
#!/usr/bin/perl
#############################################
##
## Perlkurs Linuxmagazin Teil 1
##
## 4. Prozentrechung
##
##
{
print "\n\nProzentrechung \n";
print "==================\n\n";
print "Berechnung des Prozentsatzes, bei bekannten Grundwert und Prozentwert\n\n";
print "Grundwert: ";
$g =
Funktion Aufgabe
abs ($x) Absolutwert von $x
atan ($x,$y) Acrustangeny von $x/$y
cos ($x) Cosinus von $x (im Bogenmass)
log ($x) Logarithmus naturalis von $x
sin ($x) Sinus von $x (im Bogenmass)
sqrt ($x) Quadratwurzel von $x
#!/usr/bin/perl
#############################################
##
## Perlkurs Linuxmagazin Teil 1
##
## 5. Quadratwuzel
##
##
{
print "\n\nBerechnung einer Quadratwurzel \n";
print "==============================\n\n";
print "Basiszahl: ";
$basis =
Der Autor
Achim Schmidt ist staatlich geprüfter Assistent für Automatisierungs- und
Computertechnik (HBFS) und beschäftigt sich bereits seit 6 Jahren
intensiv mit dem Internet und seinen Diensten. Mit Linux wurde er
erstmalig 1992 beim Aufbau eines Mailboxsystemes direkt konfrontiert.
Seit 1993 sind bereits einige Publikationen (http://www.saar.de/~as/publications/) von ihm in verschiedenen
Medien erschienen .
Seit 1995 ist er als Netzwerk- und Systemmanager tätig und beschäftigt
sich dabei auch mir der Entwicklung und Realisierung WWW- basierter Onlinesysteme und
Internetkopplungen. Zu erreichen ist er unter as@Saar.DE.