The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
  <link rel="SHORTCUT ICON" href="../bilder//pl.ico">
  <title>Einf&uuml;hrung  </title>
 </head>
 <body bgcolor="#ffffff">
  <hr>
  <h1 align="center">Einf&uuml;hrung</h1>
  <table align="center"><tr>
  <td><a href="perl_inhalt.html">  <img src="../bilder//perl_links.gif" alt="[ vorherige Seite ]" width="43" height="30" border="0"></a></td>
  <td><a href="../perl-tutorial.html">  <img src="../bilder//perl_titel.gif" alt="[ Titelseite ]" width="81" height="22" border="0"></a></td>
  <td><a href="perl_inhalt.html">  <img src="../bilder//perl_inhalt.gif" alt="[ Inhalt ]" width="57" height="22" border="0"></a></td>
  <td><a href="perl_index.html">  <img src="../bilder//perl_index.gif" alt="[ Index ]" width="54" height="22" border="0"></a></td>
  <td><a href="perl_perldoc.html">  <img src="../bilder//perl_rechts.gif" alt="[ n&auml;chste Seite ]" width="43" height="30" border="0"></a></td>
  </tr></table>
  <hr>

  <ul>
<li><a href="#abs1">Was ist Perl ?</a></li>
<li><a href="#abs2">Ein erstes Programm</a></li>
  </ul>
  <a name="abs1"></a><hr>
  <h2 align="center">Was ist Perl ?</h2>
  <hr>
  <p>

Perl steht f&uuml;r <i>"practical extraction and report language"</i>,
womit eigentlich schon alles gesagt ist. Ziel des Autors Larry Wall
bei der Erstellung von Perl war es, eine Sprache zu entwickeln, die
einerseits die wichtigsten Programmierbefehle wie Schleifen,
Verzweigungen, etc. enth&auml;lt und andererseits aber auch die
M&ouml;glichkeit bietet, leicht Such- und Ersetzungsoperationen
wie in einem Editor durchzuf&uuml;hren. Somit entstand Perl
im wesentlichen als eine Synthese aus der Programmiersprache
<i>C</i> und den UNIX-Funktionen
<b><tt>sed</tt></b> und <b><tt>awk</tt></b>.
  </p>
  <p>

Die Programme, die man in Perl schreibt, werden als ASCII-Files
gespeichert (wie ein Shell-Skript) und erst unmittelbar vor der
Ausf&uuml;hrung kompiliert. Dies macht Programme einerseits leicht
editierbar und auch auf andere Rechnersysteme &uuml;bertragbar,
andererseits zeichnen sich Perl-Programme insbesondere bei
Suchfunktionen durch eine hohe Geschwindigkeit aus.
  </p>
  <p>

Perl ist gem&auml;&szlig; der <i>Artistic License</i> sowie
(bei den neueren Versionen) unter der <i>GNU Public License</i>
(<i>GPL</i>) einschlie&szlig;lich des
Quellcodes frei verf&uuml;gbar. Auf den meisten UNIX- bzw. Linux-Systemen
ist Perl bereits vorinstalliert (unter dem Pfad <i>/usr/local/bin/perl</i>
oder <i>/usr/bin/perl</i>).
Au&szlig;erdem existieren Portierungen f&uuml;r viele andere
Betriebssysteme wie etwa Mac&nbsp;OS und Windows-Varianten, wobei bei
Nicht-UNIX-Systemen bisweilen nicht die gesamte Funktionalit&auml;t
zur Verf&uuml;gung steht. Die aktuelle (Stand Januar 2012)
"stabile" Version ist Perl&nbsp;5.14.2.
Die Nummer der auf einem Rechner installierten Perl-Version
erh&auml;lt man &uuml;ber "<code>perl -v</code>".
  </p>
  <p>

Dieses Tutorial wurde auf Basis von Perl 5.005 bzw. 5.6.0
geschrieben, so da&szlig; einige Dinge inzwischen wohl als
veraltet betrachtet werden k&ouml;nnen. Gleichwohl sollten
alle hier pr&auml;sentierten Beispiele aufgrund der
Kompatibilit&auml;t auch auf allen neueren Versionen von
Perl-Interpretern laufen.
  </p>
<p align="right"><a href="perl_einf.html">[Seitenanfang]</a></p>
  <a name="abs2"></a><hr>
  <h2 align="center">Ein erstes Programm</h2>
  <hr>
  <p>

Ein Perl-Programm wird einfach mit einem Text-Editor
(kein Textverarbeitungsprogramm) geschrieben und als Text-Datei (im
wesentlichen ASCII-Code)
abgespeichert. Unter UNIX/Linux ist noch darauf zu achten,
das Execute-Bit der Datei zu setzen, damit die Perl-Programme
direkt aufgerufen werden k&ouml;nnen, also z.B. mittels
  </p>
  <blockquote>
<code>chmod u+x skript.pl</code>  </blockquote>
  <p>

Zum Ausf&uuml;hren eines Perl-Programms ruft man dann auf der
Kommandozeile
  </p>
  <blockquote>
<code>perl skript.pl</code>  </blockquote>
  <p>

oder einfach
  </p>
  <blockquote>
<code>skript.pl</code>  </blockquote>
  <p>

auf. Wird das Verzeichnis, in dem <code>skript.pl</code> liegt, nicht
standardm&auml;&szlig;ig nach ausf&uuml;hrbaren Programmen durchsucht
(Umgebungsvariable <code>PATH</code>), so ist in der zweiten Variante
der ganze Pfad anzugeben.
  </p>
  <p>

In der Datei <b><tt>skript.pl</tt></b> steht zum Beispiel folgendes:
  </p>
<table align="center" bgcolor="#ffcc99" border="0" cellpadding="2" width="80%"><tr><td>
<table bgcolor="#ffffcc" border="0" cellpadding="10" width="100%">
<tr><td><code>#!/usr/local/bin/perl&nbsp;-w<br><br>print("Just&nbsp;another&nbsp;Perl&nbsp;hacker\n");<br></code></td></tr></table>
</td></tr></table>
<table align="center" bgcolor="#66cc66" border="0" cellpadding="2" width="80%"><tr><td>
<table bgcolor="#ccffcc" border="0" cellpadding="5" width="100%">
<tr><td><code>Just&nbsp;another&nbsp;Perl&nbsp;hacker<br></code></td></tr></table>
</td></tr></table>
  <p>

Die erste Zeile beginnt mit einem "<code>#</code>", was von
Perl als Kommentar angesehen und
damit nicht weiter beachtet wird.
Diese Zeile dient dazu, der Shell mitzuteilen, da&szlig; es sich hierbei
um ein Perl-Programm und nicht etwa ein Shell-Skript handelt. Der
Pfad gibt dabei an, wo im System <tt>perl</tt> installiert ist (in diesem
Tutorial wird immer der Pfad <i>/usr/local/bin/perl</i> verwendet). Als Option
f&uuml;r Perl empfiehlt es sich, zumindest immer "<code>-w</code>"
anzugeben, da in diesem Falle umfangreichere Meldungen von Perl geliefert
werden, falls beim Interpretieren des Codes Probleme auftreten.
  </p>
  <p>

Die letzte Zeile enth&auml;lt die Perl-Funktion
<code>print</code>, die
als Argument eine Zeichenkette erwartet, welche dann auf dem
Bildschirm ausgegeben wird. Das Symbol "<code>\n</code>" f&uuml;hrt
an dieser Stelle zu einem Zeilenvorschub. Bei der Funktion
<code>print</code> k&ouml;nnen (wie bei einigen anderen
Perl-Funktionen) die Klammern auch weggelassen werden:
  </p>
<table align="center" bgcolor="#ffcc99" border="0" cellpadding="2" width="80%"><tr><td>
<table bgcolor="#ffffcc" border="0" cellpadding="10" width="100%">
<tr><td><code>#!/usr/local/bin/perl&nbsp;-w<br><br>print&nbsp;"Just&nbsp;another&nbsp;Perl&nbsp;hacker\n";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#006600">#&nbsp;(Kommentar)</font><br></code></td></tr></table>
</td></tr></table>
  <p>

Befehle/Funktionen werden in Perl immer mit einem Semikolon
"<code>;</code>"
abgeschlossen (es kann am Ende eines Blocks entfallen). Bei
Schreibung der Funktionsnamen (und auch von Variablen etc.)
ist stets auf Gro&szlig;- oder Kleinschreibung zu achten. An jeder
Stelle eines Perl-Programms, an der ein
Leerzeichen erlaubt ist, k&ouml;nnen anstelle eines einfachen Leerzeichens
auch beliebig viele Tabulatoren, Zeilenvorsch&uuml;be, etc. stehen.
Kommentare k&ouml;nnen fast an beliebigen Stellen stehen; sie werden
mit einem "<code>#</code>" eingeleitet und gelten dann bis
zum Zeilenende.
  </p>
<p align="right"><a href="perl_einf.html">[Seitenanfang]</a></p>
  <hr>
  <table align="center"><tr>
  <td><a href="perl_inhalt.html">  <img src="../bilder//perl_links.gif" alt="[ vorherige Seite ]" width="43" height="30" border="0"></a></td>
  <td><a href="../perl-tutorial.html">  <img src="../bilder//perl_titel.gif" alt="[ Titelseite ]" width="81" height="22" border="0"></a></td>
  <td><a href="perl_inhalt.html">  <img src="../bilder//perl_inhalt.gif" alt="[ Inhalt ]" width="57" height="22" border="0"></a></td>
  <td><a href="perl_index.html">  <img src="../bilder//perl_index.gif" alt="[ Index ]" width="54" height="22" border="0"></a></td>
  <td><a href="perl_perldoc.html">  <img src="../bilder//perl_rechts.gif" alt="[ n&auml;chste Seite ]" width="43" height="30" border="0"></a></td>
  </tr></table>
  <hr>
  <table width="100%"><tr>
    <td align="left"><i>Autor: 
       <a href="mailto:Eike.Grote@web.de">Eike&nbsp;Grote</a></i>
    </td>
    <td align="right"><i>Version: 2.05 (24.1.2012)</i>
    </td>
  </tr></table>
 </body>
</html>