Perl

Installation und Test auf Windows (WAMP)

>
Perl ist eine moderne Programmiersprache, die sich gut für die automatische Erstellung von dynamischen Internet-Seiten eignet. Andererseits ist Perl.ideal für Programme geeignet, die am eigenen PC laufen - Im Hintergrund, zur Verwaltung als Konsolen-Programm, oder zur Anwendung mit Bedienung über Webseiten. Hier wird Installation und Test auf Windows-Betriebssystemen beschrieben.
Beachten sie, dass sich Bezeichnungen, Dateipfade usw. je nach den verwendeten Versionen ändern können.
Achtung:   Alle Angaben ohne Gewähr !   Wenn sie den Hinweisen folgen, so tun sie das auf eigenes Risiko !
WAMP Standard-Server mit Windows - Apache - MySQL - PHP - Perl
Perl Informationen für EntwicklerInnen
Quellen Wo kann man Perl downladen ?
Installation Installation auf einem Windows-PC
Test Einfacher Funktionstest
Windows Anpassung von Windows zur Verwendung von Perl
Dokumentation Der (Apache)-Webserver verwaltet die umfangreiche Perl-Doku
Shebang Linux-Sitten auf Windows #!
Webserver Anpassung des Webservers zur Verwendung von Perl CGI-Scripts
CGI Erstellung und Test von Perl CGI-Scripts
Module Installation zusätzlicher Perl-Module (z.B. DBI für Datenbank)
Austausch von Perl-Programmen zwischen Linux und Windows
Weiter mit Perl Programmierung mit Perl
Links Ausgewählte Links zum Thema "Perl auf Windows"

Perl - Quellen

Perl

Voraussetzung:

Ein modernes Windows-Betriebssystem (z.B. Win2000, WinXP). Eine Installation auf älteren Systemen ist möglich.
Auf Linux gehört Perl zum Umfang jeder Standard-Distribution (LAMP-System).
Perl kann auch auf zahlreichen anderen Betriebssystemen installiert werden. Eine gute Übersicht + Download bietet CPAN.

Version:

Meist haben sie die Wahl zwischen stabilen getesteten Arbeits-Versionen und der jeweils neuesten Entwickler-Version.
Benutzen sie im Zweifel immer die empfohlene stabile Version !
Für Windows stehen normalerweise fertige 'ausführbare Programme' (binaries) mit & ohne Installer zur Verfügung.

Quell-Code

Darüber hinaus ist bei oft auch der Perl-Quellcode (source) für zahlreiche Systeme und Versionen verfügbar. Das ist zumindest auf Windows nur erfahrenen EntwicklerInnen vorbehalten, da sie dazu Compiler-Software benötigen und damit ihre eigene Perl-Software compilieren.

Download

Die größte Erfahrung und Übersicht finden sie wahrscheinlich bei CPAN (Comprehensive Perl Archive Network).
Wichtige CPAN-Angebote:
Perl binary distribution (ports) - Das sind ausführbare bzw. installierbare Programme.
Perl source code (Perl-Quelltext) zur Selbst-Herstellung des Perl-Interpreters
Perl modules - Die größte Sammlung von Zusatz-Modulen für jede denkbare Aufgabe.

Ein ausgezeichnetes Service bietet der Hersteller ActiveState:
Die Perl-Version ActivePerl (ASPN) ist die meist verwendete. Perl und eine sehr große Anzahl ausgezeichneter Zusatz-Module sind kostenfrei verfügbar.
Davon kann ein Unternehmen nicht leben - Darüber hinaus bietet ActiveState auch ausgezeichnete Werkzeuge zu Perl und zu anderen Programmiersprachen.
Sie finden Perl-Interpreter für Windows auch auf zahlreichen Webs, die Freeware & Shareware anbieten.

Sehr empfehlenswert als Perl-Editor ist das OpenSource-Programm Notepad++ der Sourceforge Organisation.

Installation von Perl auf Windows

Perl-Programme

Zur Arbeit mit Perl sollten einige Begriffe klargestellt werden:
Scripts
Perl-Programme sind sogenannte Script-Programme, d.h. diese Programme bestehen aus Anweisungen in lesbarem Text ( text/plain ). Solche Text-Dateien lassen sich mit jedem Editor (z.B. notepad.exe, write.exe, .. ) öffnen, lesen oder ändern. Ein Betriebssystem kann solche Programme nicht ausführen. Daher benötigen sie zusätzlich ein Interpreter-Programmzur Umwandlung solcher Scripts in Maschinensprache.
Interpreter
Ein Interpreter-Programm ist selbst ein 'ausführbares Programm' (Binary). Seine Aufgabe ist es, Script-Programm-Texte zu lesen, in Maschinensprache umzuwandeln und an das Betriebssystem zur Ausführung zu übergeben. Dieses Programm (auf Windows perl.exe ) und sein Zubehör müssen sie besorgen und installieren.
Apache-Modul
Ein Perl-Interpreter-Programm kann auch direkt in die Software eines Apache Webservers eingebaut werden. Dieser Interpreter mod_perl kann nur vom Webserver verwendet werden, ist aber für diesen besonders schnell und effizient.

Vorarbeiten

Perl lässt sich auch ohne Vorbereitung installieren. Wenn sie allerdings später zusätzliche Perl-Module laden wollen, dann sind diese Arbeiten sehr empfehlenswert:
Wenn sie einen Router (Proxy-Server) zur Verbindung mit dem Internet verwenden, dann legen sie die rechts beschriebene Umgebungs-Variable an.
Details zu Windows Umgebungs-Variablen

Stellen sie vor der Perl Installation eine funktionierende Verbindung mit dem Internet her.

Achten sie während der Installation auf die Firewalls auf ihrem PC und am Router (Proxy-Server) und erlauben sie für Perl den Zugang zum Internet.
Wenn sich ihr PC hinter einem Internet-Router (Proxy-Server) befindet, dann sollten sie die Umgebungs-Variable HTTP_proxy definieren:
Öffnen sie Systemsteuerung | System | Erweitert | Umgebungs-Variablen. Klicken sie unter dem Fenster System-Variablen den Button Neu und geben sie ein:
Name = HTTP_proxy
Wert = http://192.168.0.1:1234
Ersetzen sie IP-Adresse (192.168.0.1) und Port (1234) durch die realen Daten ihres eigenen Routers.
Wenn sie für ihren Proxy Name und Passwort angeben müssen, dann brauchen sie zusätzlich diese Umgebungs-Variablen:
Name = HTTP_proxy_user
Name = HTTP_proxy_pass
Geben sie als Werte die benötigten Daten ein.
Kontrolle:
Führen sie einen System-Neustart durch. Öffnen sie eine Konsole (cmd.exe) und geben sie ein:
C:\> set h
Alle mit H beginnenden Variablen werden angezeigt.

Installation:

In diesem Kapitel werden jene Fragen besprochen, welche der Installer an sie richtet. Lesen sie die Bedeutung dieser Optionen vor dem Start der Installation.

Installer
Der Windows-Installer für das Perl-Interpreter-Programm wird entweder als komprimiertes Archiv oder als Installer geliefert. Packen sie das Archiv mit einem Expander (WinRAR, WinZip, WinAce, ...) aus und starten sie den Installer.
Installations-Pfad
Normalerweise wird Perl in einem dieser Pfade installiert:
C:\Programme\Perl
C:\Perl

Man hat bessere Übersicht, wenn Perl so wie jedes andere Programm im Ordner 'Programme' installiert wird.

Nach erfolgreicher Installation:
Dieses Programm ist der Perl-Interpreter:
C:\Programme\Perl\bin\perl.exe
Damit werden Perl-Scripts *.pl gelesen, in ausführbare Programme übersetzt (interpretiert) und ausgeführt.
Umgebungs-Variable PATH
Jedes Betriebssystem sucht ausführbare Programme (nur) in bestimmten Verzeichnissen (Ordnern). Die Reihenfolge dieser Verzeichnisse ist in der Umgebungs-Variablen PATH festgelegt.
Öffnen sie eine Win-Konsole ('Eingabe-Aufforderung' cmd.exe ) und geben sie ein
C:\> set path
Die Ausgabe enthält mehrere Verzeichnis-Pfade, die voneinander durch ; Strichpunkt getrennt sind.

Wenn der Perl-Interpreter installiert ist, dann sollte der Pfad dorthin unbedingt im PATH enthalten sein. Neuere Perl-Installer fragen, ob sie den Pfad zum Interpreter selbst in diese Umgebungs-Variable eintragen sollen.
Antworten sie mit Ja/Yes. Andernfalls müssen sie diese Arbeit nachträglich selbst ausführen.
Der Perl-Interpreter arbeitet auch ohne Eintragung in PATH, seine Anwendung ist dann jedoch recht mühsam.
Perl für Alle
Manche Installer fragen, ob Perl nur für sie (den aktuellen User) oder für alle User dieses PC installiert werden soll.

Wählen sie die Installation für alle User, das ist sinnvoll.
Platzbedarf (Richtwerte):
Installer-Download ca. 13 MB
Festplatte: ca. 41 MB + 22 MB Perl-Doku

Zusätzliche Module brauchen wenig Platz: Richtwert ca. 100-300 kB pro installiertem Modul (inkl. Doku).

Test der Perl-Installation

Voraussetzung: Installation eines Perl-Interpreters

Perl-Interpreter-Programm

Sehen sie nach, ob sich der Perl-Interpreter perl.exe im gewünschten Pfad befindet, z.B.
C:\Programme\Perl\bin\perl.exe
Falls nicht: Arbeiten sie entweder mit dem tatsächlichen Pfad oder de-installieren sie Perl und installieren sie erneut mit Angabe des richtigen Pfads.
Manuelles Verschieben des gesamten Perl-Verzeichnisses ist nicht ratsam: Normalerweise funktioniert der Perl-Interpreter dann nicht mehr korrekt.
Öffnen sie eine Konsole (Eingabe-Aufforderung cmd.exe ) und geben sie ein
C:\> set path
In der Ausgabe sollte der Pfad zum Perl-Interpreter enthalten sein. Wenn nicht, dann kann Perl funktionieren, die Arbeit ist jedoch sehr mühsam. Korrigieren sie die Umgebungs-Variable PATH notfalls manuell.

Perl-Interpreter Test:

Wenn Perl richtig installiert ist, dann meldet sich der Perl-Interpreter (Ausführungs-Programm für Perl Script-Programme) direkt auf der System-Konsole.
Öffnen sie ein Konsolen-Fenster ( 'Eingabe-Aufforderung' bzw. cmd.exe )und geben ein:
C:\> perl -version
C:\> perl -help
Bei korrekter Installation erhalten sie einen Meldungstext mit Angaben zur Version sowie Hilfe zu den Perl-Konsolen-Befehlen.

Wenn sich Perl nicht meldet, dann versuchen sie es mit dem kompletten Pfad zum Programm, z.B.
C:\> c:\programme\perl\bin\perl.exe -v
C:\Programme\Perl\bin> perl.exe -v

Wenn nur diese Version funktioniert, dann ist Perl richtig installiert, es fehlt jedoch noch die Einstellung der System-Variablen PATH

Perl-Script-Programm

Perl-Programme sind Scripts, d.h. Dateien in lesbarem Klartext (text/plain). Zur Erstellung können sie jeden beliebigen Text-Editor verwenden, z.B.
C:\Windows\system32\notepad.exe
- Wenig geeignet sind Textverarbeitungs-Programme, z.B. OpenOffice oder M$ Word
+ Besser geeignet sind spezielle Perl-Editoren, wie z.B.
Notepad++ oder PerlEditor von DzSoft
Erzeugen sie eine Text-Datei mit dem Namen
C:\ptest.pl
und erstellen sie mit einem Editor folgendes Perl-Programm (Script):
print "Hier ist Perl \n";
Der Befehl print erzeugt eine Ausgabe (an das Konsolen-Fenster). Achten sie auf den abschließenden ; Strichpunkt.
Starten sie ein Windows-Konsolen-Fenster ( Startmenü | Ausführen | cmd oder das Programm 'Eingabeaufforderung') und befehlen sie
C:\> perl c:\ptest.pl
Als Reaktion sollte auf der Konsole angezeigt werden:
  Hier ist Perl
Damit ist der erste Test von Perl erfolgreich abgeschlossen.
Bei diesem Test wird das Perl-Interpreter-Programm perl.exe aufgerufen. Der Pfad zur Script-Datei ptest.pl wird dabei als "commandline-Parameter" - durch ein Leerzeichen getrennt - eingegeben.

Falls der Test misslingt:
- Haben sie Perl in einem anderen Pfad installiert ?
- Liegt ihr Script in einem anderen Pfad ?
- Enthält die System-Variable PATH den Perl-Pfad ?
- Ist der Konsolen-Befehl richtig eingetippt ?
- Ist ihr Perl-Script fehlerhaft ?

Anpassung von Windows

Auf einem Linux-System muss Perl weder installiert noch angepasst werden - Dort ist Perl Standard-Bestandteil jeder gängigen Distribution. Auf Windows sind einige Anpassungen ratsam, jedoch nicht unbedingt notwendig. Je erfahrener sie sind, umso leichter wird es ihnen fallen, Perl perfekt in ihr Betriebssystem einzufügen:

PATH

Windows sucht ausführbare Programme nach den Angaben der Umgebungs-Variablen PATH .
Der Pfad zum Perl-Interpreter perl.exe (normalerweise)
C:\Programme\Perl\bin
sollte im Text der System-Variablen (Umgebungs-Variablen) PATH enthalten sein.

Anzeige des aktuellen PATH:
C:\> path
Bei Anforderung eines Programms (z.B. von perl.exe ) werden vom Betriebssystem alle eingetragenen Pfade in dieser Reihenfolge nach ausführbaren Programmen durchsucht. Als Trennzeichen zwischen den einzelnen Pfaden dient der ; Strichpunkt.
Profi-Installation von PATH:
Der Installer neigt dazu, den Perl-Pfad allen anderen voranzustellen. Es ist besser, den Perl-Pfad nach den Pfaden zum Betriebssystem-Verzeichnis einzufügen.
Manche Installer legen den Perl-Pfad nur in den privaten Benutzer-Variablen des gerade angemeldeten Users an. Der Perl-Pfad sollte jedoch in der PATH-Variable für alle User (Systemvariablen) enthalten sein.
Änderung: Entweder in der System-Verwaltung oder in der Registry-Datenbank.
Vorsicht - Beide Varianten sind erfahrenen AnwenderInnen vorbehalten. Durch falsche Bedienung kann irreversibler Schaden an ihrem Betriebssystem angerichtet werden !
System-Steuerung
Systemsteuerung | System | Erweitert | Umgebungsvariablen
Der PATH ist in dem winzigen Feld schlecht zu editieren: Kopieren sie den Inhalt in ein Editor-Fenster, und setzen sie den geänderten Text danach wieder in das Feld ein.
Änderung in der Registry-Datenbank: Starten sie regedit.exe und gehen sie zum Schlüssel
HKEY_LOCAL_MACHINE | SYSTEM | ControlSet001 | Control| Session Manager | Environment
(Je ein ControlSet für jeden User, bzw. CurrentControlSet wird je nach User-Anmeldung ausgewählt).
Derartige Änderungen werden normalerweise erst nach Neustart des Systems wirksam.
Pfad-Test
Testen sie, ob der Perl-Interpreter auch nach Neustart des Systems richtig gefunden wird. Verzweigen sie zu unterschiedlichen Verzeichnissen und erteilen sie einen einfachen Perl-Befehl:
C:\Programme\Perl\bin> perl -v
C:\Programme> perl -v
C:\> perl -v
D:\> perl -v
Profi-Pfad-Test: Wiederholen sie diesen Test nach Anmeldung als anderer User.

Der Test (Ausgabe der Perl-Version) funktioniert immer
Funktioniert nicht immer:   Kontrollieren sie die Einstellung von PATH.
Funktioniert gar nicht:   zurück zur Installation.

PATHEXT

Mit Hilfe der Umgebungs-Variablen PATHEXT erkennt Windows, welche der zahlreichen Dateien im PATH (s.o.) ausführbar (Programme und Script-Programme) sind.

Vorsicht - Änderungen von System-Variablen sind erfahrenen AnwenderInnen vorbehalten !
Ändern sie PATHEXT so wie rechts gezeigt.

Die Variable PATHEXT enthält die Datei-Endungen ausführbarer Programme, z.B.
.COM;.EXE;.BAT;...
Ergänzen sie ein ; Trennzeichen und die Datei-Endung .PL z.B.
.COM;.EXE;.BAT;...;.PL
Damit gelten Perl Script-Programme als 'ausführbar' - Das funktioniert allerdings nur dann, wenn die Datei-Endung mit dem Perl Interpreter (nächstere Absatz) verknüpft wird.
Details dazu im Kapitel Windows Umgebungs-Variable
Standardprogramm für Perl-Scripts
Ein Win-Betriebssystem sollte *.pl-Dateien (ungefragt) mit dem Perl-Interpreter öffnen.
Befehl: Arbeitsplatz | Extras | Ordner-Optionen | Dateitypen
Nach einer Wartezeit wird die Liste aller bekannten Dateitypen angezeigt.
Suchen sie PL in der Spalte "Erweiterungen". Falls kein Eintrag für PL existiert, erstellen sie einen solchen.
Kontrollieren / Ändern sie :
  Dateitype = PerlScript
Kontrollieren / Ändern sie
  "Öffnen mit" = "Perl Commandline Interpreter"
(suchen sie nach C:\Perl\bin\perl.exe )
Unter "Erweitert" sollte die Aktion "Open" enthalten sein, welche diesen Befehl ausführen muss:
  "C:\Programme\Perl\bin\perl.exe" "%1" %*

Details zu den Ordner-Optionen
Kontrollieren sie die richtige Zuordnung mit dem Konsolen-Befehl ASSOC
Die integrierte Hilfe help assoc gibt weitere Hinweise, z.B. wie Änderungen der Zuordnung auch mit assoc ausgeführt werden können.
C:\> assoc .pl
.pl=Perl
Kontrollieren sie die richtige Zuordnung mit dem Konsolen-Befehl FTYPE
Die integrierte Hilfe help ftype gibt weitere Hinweise, z.B. wie Änderungen auch mit ftype ausgeführt werden können.
C:\> ftype Perl
Perl="c:\programme\perl\bin\perl.exe" "%1" %*
Details zu den Konsoilen-Programmen ASSOC und FTYPE
Test:
Dazu müssen sie zumindest über ein minimales Perl Script-Programm verfügen, z.B.
C:\ptest.pl
so wie im Kapitel Perl-Test dieser Seite beschrieben.
Öffnen sie ein Konsolen-Fenster und geben sie den Befehl zur Ausführung dieses Scripts ein. Verringern sie die komplette Angabe (1. Zeile) schrittweise:
C:\> c:\programme\perl\bin\perl.exe c:\ptest.pl
C:\> perl.exe c:\ptest.pl
C:\> perl c:\ptest.pl
C:\> perl c:\ptest
C:\> c:\ptest

Das Perl-Script sollte in jedem Fall problemlos laufen.
Nun wird es schon einfacher, Perl-Scripts zu verwenden: Die Dateinamen der Scripts können wie Konsolen-Befehle verwendet werden.
Wenn die erste Zeile nicht funktioniert, dann ist Perl vermutlich nicht korrekt installiert, oder der Befehl falsch eingetippt.
Wenn der Perl-Interpreter nicht gefunden wird (Zeile 2..3) dann liegt der Fehler in der System-Variablen PATH. Wenn das funktioniert, aber danach Fehler auftreten, dann liegt der Fehler in der Zuordnung von Datei-Erweiterung .PL und Perl-Interpreter oder in der System-Variablen PATHEXT

Interaktiver Test

Erzeugen sie ein weiteres Perl-Testscript
C:\pintest.pl
print "Hier ist Perl Test interaktiv\n";
print "Bitte um eine TextSpende: \n";
$eingabe = <STDIN>;
Versuchen sie nun, das Programm durch Doppelklick aus Windows zu starten:
Das Programm sollte sich (in einem Konsolenfenster) öffnen
Sie können einen Text eingeben
Nach Eingabe schließt sich das Fenster.
Perl-Test 4 ok Damit ist sichergestellt, dass Perl-Scripts selbständig ablaufen.
Sie können nun Perl-Programme erstellen, die auf ihrem PC beliebige System-Arbeiten ausführen, ähnlich wie Konsolen-Scripts *.bat oder *.cmd, jedoch weitaus mächtiger als diese.
Viele dieser Programme lassen sich sogar Plattform-unabhängig erstellen, d.h. sie laufen (fast) ohne Änderung auf Linux ebenso wie auf Windows.

Proxy-Server (Router)

Perl wird meist mit einer guten Grund-Ausstattung an Modulen geliefert. Rechnen sie jedoch damit, selbst weitere Module zu installieren. In diesem Fall braucht der Programmers Package Manager (ppm) Informationen über den Zugang zum Internet.
Wenn ihr PC direkten Zugang zum Internet hat, dann ist dafür keine weitere Adaptierung notwendig.

Wenn sich ihr PC hinter einem Proxy-Server (Internet-Router) befindet, dann muss die Umgebungs-Variable HTTP_proxy definierent sein.
Wenn ihr Router Name und Passwort benötigt, dann müssen auch die beiden Umgebungs-Variablen HTTP_proxy_user und HTTP_proxy_pass definiert sein.
Details dazu im Kapitel Installation dieser Seite.

Registry Hack

Nach sauberer Installation können Perl Script-Programme wie z.B. c:\test.pl in der Kurzform gestartet werden:
C:\> test
Manchmal kann man diesen Programmen jedoch keine Commandline-Argumente mitgeben wie z.B.
C:\> test abc 123
In diesem Fall hilft eine Änderung der Registry-Datenbank. Das ist jedoch erfahreren AdministratorInnen vorbehalten.
Achtung - Änderungen der Registry können irreparable Schäden an Betriebssystem, Programmen oder Daten zur Folge haben !

Öffnen sie den Registry Editor regedit.exe und kontrollieren sie die Schlüssel
HKEY_CLASSES_ROOT \ Applications \ perl.exe \ shell \ open \ command
HKEY_CLASSES_ROOT \ Perl \ Shell \ Open \ Command
HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Perl \ Shell \ Open \ Command

In den Schlüsseln sollte sich je ein String (Standard) mit diesem Wert befinden
"C:\Programme\Perl\bin\perl.exe" "%1" %*

Falls der String bereits mit "%1" endet, wird von einer Befehlszeile
C:\>perl.exe c:\test.pl abc 123
nur das erste Argument an den Perl-Interpreter übergeben, nämlich der Pfad zum Perl-Script test.pl, alle weiteren Argumente werden ignoriert.
Der Zusatz %* (ohne " ") sorgt dafür, dass alle folgenden Argumente an ihr Script weitergegeben werden.

Der gleiche String kommt noch in einer Reihe anderer Schlüssel vor, muss dort aber normalerweise nicht geändert werden, da diese Schlüssel bei Systemstart oder User-Anmeldung automatisch gesetzt werden.

Details zur Verarbeitung von Commandline-Argumenten mit Perl.
Details zum Thema Registry ↔ Datei-Erweiterungen und Datei-Typen

Perl-Dokumentation

Voraussetzung:
Perl installiert und getestet, Windows angepasst.
Die umfangreiche Perl-Dokumentation wird für einen bequemen Zugang eingerichtet.

Dokumentation:

Zusammen mit Perl wird normalerweise die komplette Perl-Dokumentation (auf Webseiten) geliefert und installiert
Start mit
C:\Programme\Perl\html\index.html

Die Doku ist sehr umfangreich, aber etwas gewöhnungs-bedürftig. Sie wird am besten von einem Webserver verwaltet.

Modul-Doku:

Jedes Perl-Modul installiert bei Installation seine komplette Dokumentation. Das ist besonders bequem, funktioniert jedoch nur dann, wenn man das gesamte Doku-Verzeichnis an seinem Platz lässt.

Das Doku-Verzeichnis sollte nicht verschoben werden. Für einen idealen Zugang binden sie die Doku an den Webserver, so wie rechts für Apache 2.2 gezeigt.

Perl-Doku # Apache-Webserver:

So wird die Perl-Doku mit einem Apache-(2.2)-Webserver zugänglich gemacht:
Erzeugen sie eine Text-Datei
C:\Programme\Apache Software Foundation\Apache2.2\conf\extra\perldoku.conf
und tragen sie diesen Text ein:
Alias /perldoku "C:/Programme/perl/html"
<Directory "C:/Programme/perl/html">
Order allow,deny
Allow from all
</Directory>
Noch besser ist es, den Zugang auf den eigenen PC oder auf die PC im lokalen Netzwerk (LAN) zu begrenzen. Ersetzen sie die Allow-Zeile durch
Allow from 192.168.0.0/255.255.255.0
und ersetzen sie die IP-Adresse durch jene ihres lokalen Netzwerks.

Tragen sie am Ende der Konfigurations-Datei
C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd.conf
eine zusätzliche Include-Anweisung ein:
Include conf/extra/perldoku.conf

Legen sie auf einer passenden Webseite (z.B. auf index.html einen Link zur der Perl-Doku, z.B.
<a href="http://localhost/perldoku">Perl-Doku</a>
<a href="/perldoku">Perl-Doku</a>
Wenn der Webserver nicht am eigenen PC liegt, dann ersetzen sie localhost durch Name oder IP-Adresse des Servers.
Wenn sie diesen Link anklicken, dann haben sie direkten Zugang zur Perl-Doku. Das ist der beste Weg, diese und andere Manuals ins eigene Web einzubinden.

#!Shebang

Auf Linux-Systemen wird durch einen speziell formatierten (shebang)-Text festgelegt, mit welchem Programm ein Script-Programm ausgrführt werden soll. Das ist auf Windows-Systemn anders gelöst und daher wirkungslos - Mit einer Ausnahme: Bei Verwendung von Perl-Scripts als CGI, d.h. zur Erzeugung von dynamischen Webseiten auf einem Webserver.
Die Zeichen-Konbination #! am Anfang (!) einer Text-Datei wird u.a. auch "shebang" genannt.
Anschließend wird der Pfad zum ausführenden Programm eingefügt. Sie ist in allen Linux-Script-Programmen als erste (!) Zeile enthalten.

Daraus erkennt das Linux-System, mit welchem Programm diese Script-Datei ausgeführt werden soll. Die Methode erfordert keine eigene Organisation, ist voll transparent und erlaubt es, für jede beliebige Text-Datei das Zielprogramm, Switches oder Parameter anzugeben. Unabhängig davon lässt sich jede Datei natürlich auf Wunsch mit anderen Programmen (z.B. mit einem Editor) öffnen.
Perl-Scripts beginnen auf Linux normalerweise mit der Zeile
#!/usr/bin/perl
Das ist der Standard-Pfad zum Perl-Interpreter auf Linux.
# Perl-Kommentare beginnen mit "#"
# Die Shebang-Zeile wird daher vom Perl-Interpreter ignoriert
# so wie jede andere Kommentarzeile.
Auf Windows wird die shebang-Zeile vom Betriebssystem ignoriert, sie können daher portable Perl-Scripts für Perl-Programme immer mit der oben angegebenen Linux-shebang-Zeile erstellen. Das Testscript ptest.pl kann daher sowohl auf Linux als auch Windows verwendet werden, wenn sie es so ergänzen:
#!/usr/bin/perl
print "Hier ist PerlTest\n";
Bei Verwendung als CGI-Programm (zusammen mit einem Webserver) sollten Perl-Scripts jedoch auch auf Windows den shebang enthalten. Windows-Perl-CGI-Scripts beginnen mit dieser Zeile:
#!c:\programme\perl\bin\perl.exe
Damit wird der Pfad zum Perl-Interpreter-Programm perl.exe bezeichnet.
Wichtig: Die shebang-Zeile muss die erste Zeile im Dokument sein, und sie muss unmittelbar am Zeilen-Anfang beginnen (keine führenden Leerzeichen oder Tab-Zeichen).
Portable Perl-CGI-Programme werden zweckmäßig mit diesen beiden Anfangszeilen erstellt. Je nach Betriebssystem muss man die beiden Zeilen austauschen:
#!/usr/bin/perl
#!c:\perl\bin\perl.exe

Tipp: Ein praktisches Tool für die Vertauschung lässt sich in Perl leicht selbst programmieren.
Neuere Apache Versionen benötigen die shebang-Zeile nicht unbedingt:
An ihrer Stelle können die Daten der Registry-Datenbank verwendet werden.
In diesem Fall müssen sie in die Konfiguration die Zeile
ScriptInterpreterSource registry
in die Apache-Konfiguration eintragen bzw. das Kommentar-Zeichen vor dieser Zeile löschen.
Trotzdem wird empfohlen, die shebang-Zeile in jedem Fall korrekt einzutragen: Dann funktioniert das Perl-CGI-Programm unabhängig von der verwendeten Methode.

Webserver und Perl CGI-Scripts

Voraussetzung: (Apache) Webserver installiert, gestartet und getestet, Perl installiert und getestet.
Wenn sie Perl verwenden wollen, um damit dynamische Webseiten zu erstellen, dann müssen sie dafür sorgen, dass der Webserver Perl-Scripts (an der Datei-Endung *.pl) erkennt und zur Verarbeitung an den Perl-Interpreter perl.exe oder an das Apache-Modul mod-perl übergibt. Die solcherart verwendeten Perl-Scripts folgen dem für "Common Gateway Interface" (CGI) definierten Standard.
Der Apache Webserver wird durch die Datei httpd.conf gesteuert.
Diese Datei befindet sich (je nach Apache Version ) z.B. hier:
C:\Programme\Apache Software Foundation\Apache2.2\conf\httpd.conf
Beachten sie die Allgemeinen Regeln für jede Änderung der Konfigurationsdatei :
+ Sicherungskopie erzeugen
+ Jede Änderung dokumentieren

Apache-Modul mod_cgi

Suchen sie im Text der Datei httpd.conf nach "LoadModule":
Das Apache CGI-Modul sollte geladen werden:
  LoadModule cgi_module modules/mod_cgi.so
Entfernen sie ein allfälliges Kommentar-Zeichen am Beginn der Zeile.

Directory Options ExecCGI

Suchen sie im Text nach "<Directory". (mehrere Treffer)
Jeder dieser Abschnitte legt das Verhalten im betreffenden Verzeichnis fest.
Unmittelbar darauf folgen die Options für das Verzeichnis. Wenn darin ExecCGI enthalten ist, dann lassen sich CGI-Programme in diesem Verzeichnis und in allen Unter-Verzeichnissen ausführen.
Das ist nur für den Test geeignet, aber im realen Betrieb unüblich - Sie öffnen damit eine Sicherheitslücke !
Empfohlene Einstellungen:
Beispiel für Test:
Options Indexes FollowSymLinks ExecCGI
Beispiel für Produktion:
# Options Indexes FollowSymLinks ExecCGI

Alias cgi-bin

Suchen sie im Text nach Alias
Alias und ScriptAlias sind Namen, die von Apache durch den angegebenen Text ersetzt werden (Text-Makros):
Hier finden sie normalerweise einen Eintrag für CGI-Programme, allenfalls auch für für PHP:
ScriptAlias /cgi-bin/ "C:/Programme/Apache Software Foundation/Apache2.2/cgi-bin/"
ScriptAlias /php/ "C:/Programme/Apache Software Foundation/Apache2.2/php/"
Jede Definition besteht aus dem Befehlswort ScriptAlias, einem Alias-Namen und einem Text.
Apache ersetzt jedes Auftreten eines ScriptAlias-Namens durch den angegebenen Text.
Wenn sie z.B. in einer Browser-Adresszeile eingeben:
http://localhost/cgi-bin/ptest.pl
dann versucht der Server, das Script ptest.pl in jenem Verzeichnis auszuführen, welches durch den Text des ScriptAlias definiert wurde. Der Alias-Name muss dabei exakt so angegeben werden wie in der Definition, also /cgi-bin/ inkl. beider Schrägstriche.
Ein Alias kann in ein beliebiges Verzeichnis weisen. Leider kommt es leicht zu Mißverständnissen, wenn Alias-Name und Verzeichnis-Pfad gleich oder ähnlich gewählt werden, so wie hier.
Auf Apache-Linux ist es üblich, das Modul mod_perl zusätzlich zum Perl-Interpreter einzusetzen: Dieser Perl-Interpreter arbeitet ausschließlich mit dem Apache-Webserver, und ist damit besonders schnell und effizient.
Das Modul kann in 2 verschiedenen modes arbeiten, dafür werden 2 verschiedene ScriptAlias definiert, die jedoch meist in das gleiche Verzeichnis verweisen.
ScriptAlias /perl/ "/srv/www/cgi-bin/"
ScriptAlias /cgi-perl/ "/srv/www/cgi-bin/"
Unmittelbar anschließend sind meist die Details für das jeweiligen Verzeichnis definiert - lassen sie diese im Zweifel unverändert !
<Directory "C:/Programme/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Falls sie Scripts außerhalb der ScriptAlias-Verzeichnisse ausführen wollen (Sicherheits-Risiko !), müssen sie das dafür zuständige Programm festlegen.
Suchen sie im Text nach "AddHandler" bzw. ergänzen sie eine Anweisung zur Ausführung bestimmter Dateien (*.pl) mit einem Handler (cgi-script).
Um Ausführungs-Rechte (execute) in einem Verzeichnis zu erlauben, müssen sie darin die Option ExecCGI setzen (ersetzen sie .. durch den Verzeichnis-Pfad).
Ergänzen sie beim "cgi-script"-Handler ".pl"
Damit wird die Beziehung zwischen Datei-Erweiterung und Handler (ausführendem Programm) festgelegt.
AddHandler cgi-script .cgi .pl
<Directory ..>
Options ExecCGI
</Directory>
Falls sie Änderungen an der Konfigurationsdatei vorgenommen haben:
Führen sie einen Neustart des Servers aus.
Testen sie mit einem Browser, ob der Server korrekt arbeitet.

Ersetzen sie nach posivem Ablauf aller Tests die Sicherungskopie der Konfigurationsdatei durch eine neue Version.

Perl mit M$ IIS

ActivePerl kann auch mit einem IIS Server verwendet werden.
Der Server muss vor der Installation von Perl bereits installiert und getestet sein.

IIS Version 3:
ActivePerl gibt dem M$ Internet Server Application Programming Interface ISAPI die Datei-Endung *.plx bekannt.
Die Verknüpfung der Datei-Endung mit einem Programm muss für den Explorer und für den Server getrennt vorgenommen werden.
Die Registry-Schlüssel für den Server:
HKEY_LOCAL_SYSTEM \ System \ CurrentControlSet \ Services \ W3SVC \ Parameters \ ScriptMap
Meist registriert man hier 2 verschiedene Datei-Endungen:
.pl mit perl.exe %s und .plx mit PerlIIS.dll
Geben sie für die ausführbaren Programme (*.exe,*.dll) deren vollständige Pfade an.
Ihre Perl Script-Dateien verschieben / kopieren sie in ein Virtuelles Server-Verzeichnis, welches Ausführungs-Rechte (execute), jedoch keine Lese-Rechte (read) hat (meist cgi-bin oder ähnlich). Mit dem Internet Service Manager können sie virtuelle Verzeichnisse anlegen oder deren Eigenschaften ansehen / ändern. Diese Verzeichnisse dürfen sich nicht mit dem Web-Verzeichnis (WWW root directory) überlappen, in welchem sich die normalen Webseiten befinden.
Der Server-User muss Zugriffs-Rechte auf alle benötigten Dateien haben: Script-Programme, Perl *.exe und *.dll, Perl Bibliotheken, Module usw. Der Server-User wird im Internet Service Manager eingestellt und lautet normalerweise auf IUSR_* (* = Server-Name).
Nach jeder Änderung der Konfiguration bzw. der Registry muss der Server neu gestartet werden.
IIS Version 4 und 5:
Öffnen sie den Internet Service Manager. Er startet automatisch in der Management Console.
Wählen sie links den gewünschten Bereich (level) aus den Optionen {Gesamter Server, WebSite, Virtuelles Verzeichnis} für ihre Einstellungen.
Wählen sie Action | Eigenschaften (properties)
Bereich 'Gesamter Server' (entire server):
Das Fenster 'Server Properties' wird geöffnet. Wählen sie Master Propereties | WWW Service | Edit. Wählen sie aus den Master Properties das Register Home Directory. Weiter zum orangen Punkt.
Bereich Website: Das Fenster 'Web Site Properties' wird geöffnet. Wählen sie das Register 'Home Directory'. Weiter zum orangen Punkt.
Virtuelles Verzeichnis: Das Fenster 'Virtual Direcory Properties' wird geöffnet. Wählen sie das Register 'Virtual Directory'
Klicken sie 'Configuration'. Das Fenster 'Application Configuration' wird geöffnet.
Wählen sie App Mappings | Add
Im nun geöffneten Fenster führen sie die eigentliche Einstellung durch:

Perl als CGI-Programm:
Geben sie den vollständigen Pfad zum Perl Interpreter an, z.B.
C:\Programme\Perl\bin\perl.exe %s %s
Der erste Platzhalter %s wird bei Ausführung durch den Pfad zum jeweiligen Script-Programm ersetzt, der zweite Platzhalter durch die allenfalls übergebenen Argumente.
Perl als ISAPI-Modul:
Geben sie den vollständigen Pfad zu PerlIIS.dll an. Platzhalter sind in diesem Fall nichr nötig.
Geben sie als Erweiterung (Extension) .pl oder .plx an.
Bestätigen sie mit OK und schließen sie alle offenen Fenster, inkl. IIS Service Manager.
Starten sie den Server neu.

Perl CGI-Script

CGI
ist ein Standard für Webserver-Hilfsprogramme "Common Gateway Interface". Dabei handelt es sich meistens um Perl-Scripts (*.pl) oder direkt ausführbare (C++)-Programme (*.exe).
Der CGI-Standard regelt die Zusammenarbeit der Hilfsprogramme mit dem Webserver.
Erzeugen sie ein Perl CGI-Script z.B. im Pfad
C:\perlcgi.pl
Das Script muss (!) mit der shebang-Zeile für das betreffende Betriebssystem beginnen !
Als erste Ausgabe (print-Befehl) folgt die MIME-Type des nachfolgenden Dokuments (text/html) und unmittelbar nachher 2 newline-Zeichen "\n\n".
Danach folgt eine Mini-HTML-Webseite.
#!c:\programme\perl\bin\perl.exe
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<h2>Hier ist Perl-CGI</h2>\n";
print "</html>\n";
Testen sie das Script zuerst in einem Konsolen-Fenster:
C:\> perl c:\perlcgi.pl
Hier zeigt sich kein Unterschied zu den bisherigen Test-Scripts. Die enthaltenen HTML-Befehle (tags) werden so wie jeder andere Text ausgegeben.
Installation von Perl-CGI-Scripts
Kopieren sie das Script in das Verzeichnis "cgi-bin" des Webservers:
C:\Programme\Apache Software Foundation\Apache2.2\cgi-bin\perlcgi.pl
Wenn der Webserver das CGI-Script startet, dann wird dessen Ausgabestrom <STDOUT> nicht an die Konsole (wie beim Test), sondern zum Webserver und in der Folge zum Browser weitergeleitet.
Zugriffsrechte
Das Script muss für alle User lesbar und ausführbar sein (Linux-Rechte 755). Je nach Windows-System sind derzeit manche Zugriffsrechte einstellbar. In zukünftigen Win-Betriebssystemen wird hoffentlich diese Funktion so installiert, wie in allen anderen gängigen Betriebssystemen längst üblich.
Upload:
Wenn sie ihr fertiges Perl-Script auf den Server eines Web-Providers uploaden, dann müssen sie danach die Zugriffsrechte einstellen.
Ein häufige Ursache für die Fehlfunktion von CGI-Scripts auf entfernten Webservern ist die vergessene Einstellung der Zugriffsrechte !
CGI-Test am Browser
Legen sie auf einer beliebigen Webseite (z.B. index.html) einen Link zu ihrem Perl-CGI-Script an:
<a href="/cgi-bin/perlcgi.pl">PerlCGI</a>
Testen sie den Link:
Perl-CGI-Test ok Eine Minimal-Webseite wird angezeigt - diesmal werden die HTML-Befehle (z.B. <html> ) vom Browser nicht als Text angezeigt sondern richtig als HTML-'Programm'-Befehle interpretiert.
Profi-Information: /cgi-bin/ bezeichnet kein Verzeichnis, sondern wird vom Apache Webserver als Alias interpretiert: Das Alias wird durch den in der Konfiguration angegebene Text ersetzt.
Falls der Test misslingt:
+ Zugriffsrechte auf 755 eingestellt ?
+ Kontrollieren sie die genaue Syntax ihres Links zum CGI-Script, beachten sie auch Groß- und Kleinbuchstaben.
+ Führen die die vorhergehenden Tests (am besten in der angeführten Reihenfolge) aus.
Übergabe von Argumenten
Damit ein Programm flexibel auf unterschiedliche Anforderungen reagieren kann, muss es in der Lage sein, variable Anweisungen (Argumente, Parameter) zu übernehmen.
Perl-Scripts stellen dafür verschiedene Wege zur Verfügung, z.B. GET und POST
Beide können sie mit HTML-Formularen kombinieren.
Details dazu finden sie in den Kapiteln Perl-Programmierung und CGI.

Perl-Module

Die üblichen Perl-Versionen für Windows sind bereits recht gut ausgestattet.
Die Funktionalität kann mit derzeit ca. 6500 Modulen erweitert werden.
Das Standard-Werkzeug zum Laden zusätzlicher Module ist der Programmer's Package Manager (PPM). In älteren Perl-Versionen war das Programm als Windows Konsolen-Programm enthalten. Neue Versionen enthalten den PPM als komfortables Programm mit Fenster und Maus-Bedienung.
Voraussetzungen für PPM auf Windows
Perl ist funktionsfähig installiert.
Der Pfad zu den Perl-Programmen
C:\Programme\Perl\bin
sollte in der Umgebungs-Variablen PATH eingetragen sein.
Wenn ihr PC keinen eigenen Internet-Zugang hat, sondern über das lokale Netzwerk (Router, Proxy) verbindet, dann muss eine Umgebungs-Variable HTTP_proxy eingetragen sein. Wenn ihr Proxy z.B. auf Adresse 192.168.0.1 und Port 12345 erreichbar ist, dann tragen sie ein
C:\> set HTTP_proxy=192.168.0.1:12345
Kontrollieren sie mit Befehl
C:\> set h
Ihr PC sollte arbeitsfähig mit dem Internet verbunden sein, mit oder ohne Proxy.
Start von PPM:
PPM wird z.B. durch Doppelklick auf diese Datei gestartet:
C:\Programme\Perl\bin\ppm.bat
Alternativ öffnen sie eine Windows-Konsole cmd.exe und geben ein:
C:\> ppm
Konfiguration von PPM:
Wenn sich das Fenster Perl Package Manager öffnet, klicken sie auf das erste Icon (View all packages). Der Filter (Eingabe-Zeile rechts neben dem Such-Symbol) sollte leer sein. Im Fenster sollte eine lange Liste von Paketen angezeigt werden, die Fußzeile sollte >6000 Packages angeben.
In diesem Fall ist PPM gebrauchsfertig.
Wenn keine oder nur wenige Pakete angezeigt werden, dann besteht keine Internet-Verbindung oder die Vorgaben müssen ergänzt werden:
Menü Edit | Preferences | Repositories:
Hier muss eine Zeile eingetragen sein, die in der Spalte #Pkgs mindestens 6000 Pakete anführt.
Ansonsten tragen sie ein:
Name = ActiveState Package Repository (oder einen ähnlichen Namen, falls dieser bereits existiert).
Location = http://ppm4.activestate.com/MSWin32-x86/*/package.xml
Den * ersetzen sie durch Perl Versions-Nummer, / und Build-Nr, z.B. für Perl-Version 5.9.123 setzen sie ein:
http://ppm4.activestate.com/MSWin32-x86/5.9/123/package.xml

Arbeit mit PPM

Tragen sie in die Filter Eingabe-Zeile den gewünschtem Begriff ein, z.B. mysql
Markieren sie die Zeile eines gewünschten Moduls und klicken sie das Icon mit dem grünen + (Mark for install).
Markieren sie weitere Module zur Installation, am besten jedoch nicht mehr als 3-5 Module.
Für den Zugriff auf eine MySQL-Datenbank benötigen sie z.B. die Module DBI und DBD-mysql

Klicken sie das Icon mit dem grünen Pfeil (Run marked actions).
Der PPM ladet die gewünschten Module, installiert sie, und installiert ihre Dokumentation. Das kann einige Minuten dauern.
Nach erfolgreicher Installation können sie weitere Module installieren. Es kann vorkommen, dass ein Modul mit einem bereits installierten kollidiert. In diesem Fall wird eine Fehlermeldung angezeigt, und die Installation abgebrochen.

PPM als Konsolen-Programm

Die Konsolen-Version von ppm ist gleichzeitig installiert und startet, wenn ppm mit einem Argument geöffnet wird, z.B.
C:\> ppm help
Die Konsolen-Version ist zwar weniger bequem zu bedienen, jedoch mächtiger als die Fenster-Version.

Anzeige aller registrierten Repositories von Perl-Modulen:
C:\> ppm rep list
Registrieren zusätzlicher Repositories, z.B.:
C:\> ppm repo add http://theoryx5.uwinnipeg.ca/ppms
C:\> ppm repo add http://www.bribes.org/perl/ppm
Hinweis: Die genauen Namen der Links sind oft abhängig von der Perl-Version !
Beispiel: Installation des Standard Datenbank-Moduls DBI und des MySQL Datenbank-Moduls vom Standard-Repository (ActiveState):
ppm> install DBI
ppm> install DBD-mysql
ppm> quit
Manche Module werden von der Fenster-Version des PPM nicht angezeigt, darunter z.B. die wichtigen Grafik-Module GD.
Man kann sie nur mit der Konsolen-Version laden, z.B.
C:\> ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd
Zusätzlich gibt es je nach Repository noch eine ganze Familie spezieller GD Zusatz-Module.
Man kann die Module auch downladen und lokal installieren. Stellen sie vorher fest, welche Perl-Version installiert ist:
C:\> perl -version
Für ActivePerl finden sie die Module u.a. beim Hersteller ActiveState, an der Univ. Winnipeg oder bei Bribes.
Achten sie darauf, die Module passend zu ihrer Perl-Version zu laden. Jedes Modul-Archiv enthält eine Mini-Anleitung zur offline-Installation.
Laden von CPAN-Modulen:
Dazu dient die Datei cpan.bat in ihrem Perl Installations-Verzeichnis. Das Programm führt selbst durch den Installations-Vorgang:
C:\> cpan
Allerdings verlangt die CPAN-Installation eine Reihe von Hilfs-Programmen, die sie zuerst laden, installieren und testen sollten.
Hilfe zur Installation der zahlreichen ausgezeichneten CPAN-Module finden sie auf der CPAN-Webseite.
Kompilieren einer individuellen Perl-Version oder von Perl-Modulen:
Dazu benötigen sie den Quelltext von Perl bzw. allen Modulen, die eingebunden werden sollen (aus dem Internet oder von CD), sowie einen C-Compiler.

Diese Variante kommt nur für gut ausgerüstete und ausgebildete EntwicklerInnen in Frage.

Perl-Austausch Linux → Windows

Perl ist (fast) voll kompatibel
Prinzipiell sind sauber programmierte Perl-Scripts zwischen beliebigen Betriebssystemen voll kompatibel, d.h. der Quelltext (Code) funktioniert ohne Änderung auf jedem System.

Ausnahmen gibt es nur für Programmteile, die speziell für ein bestimmtes System erstellt wurden (z.B. Zugriff auf die Win Registry-Datenbank).
shebang-Zeile
Auf Linux muss die erste Zeile jedes Perl-Programms den shebang enthalten - einen Verweis zum ausführenden Programm, und zwar ohne Leerzeilen, Leerzeichen oder Tabulatoren, z.B.
#!/usr/bin/perl

Auf Windows wird diese Zeile von Konsolen-Programmen wie jeder andere Kommentar ignoriert.
Der Apache-Webserver verwendet jedoch auch auf Windows die shebang-Zeile. Ein Perl CGI-Programm muss daher den Pfad zum Perl-Interpreter enthalten, z.B.
#!C:\Programme\Perl\bin\perl.exe
Zeilen-Umbruch
Linux und Windows unterscheiden sich u.a. auch in einem kleinen Detail:
Text-Editoren verwenden unterschiedliche Zeichen für einen Zeilen-Umbruch (neue Zeile, line feed):
Linux verwendet das Steuerzeichen LineFeed (LF, dezimal 10. hex #0A)
Windows verwendet die beiden Steuerzeichen CarriageReturn (CR, dezimal 13. hex #0D) und LineFeed (LF, dezimal 10. hex #0A) hintereinander.

Dieser Unterschied wird vom Perl-Interpreter ignoriert, d.h. Perl-Programme, die auf Linux (mit LF) erstellt wurden, laufen auch auf Windows (mit CR+LF) und umgekehrt.
Einzige Ausnahme: Die erste Zeile mit dem shebang.
Linux verlangt hier unbedingt das LineFeed ohne vorhergehendes CarriageReturn. Dieses eine Byte muss (nur) beim Kopieren eines Perl-Programms von Windows auf Linux korrigiert werden.

Details zum ASCII-Zeichencode und zu Steuerzeichen.

Tricks

Es gibt verschiedene Möglichkeiten, die shebang-Zeile eines Perl-Programms für die Übersiedlung von Windows nach Linux zu korrigieren.
Korrektur mit einem Text-Editor:
Viele Text-Editoren (manchmal sogar auf Windows) bieten diese Option, z.B. kwrite oder kate den Menübefehl Tools | End of Line | UNIX
Korrektur mit einem Datei-Editor (Hex-Editor): Die Windows-Zeichenfolge 0D0A am Ende der ersten Zeile wird auf 0A0A geändert. Diese zusätzliche Leerzeile wird auf Linux ignoriert.
Manche Hex Editoren bieten dafür eigene Menü-Befehle oder erlauben das Anlegen eigener Macros für diesen Zweck.
Viele Linux-Programme (nicht nur Text-Editoren) bieten die Möglichkeit, einen Regulären Ausdruck (Regular Expression,m RegExp) auf einen Text anzuwenden. Der RegExp für den Ersatz (replace, substitute) lautet /\x0D//g
Wenn diese Aufgabe öfters auszuführen ist ist, kann man dafür ein kleines Perl-Programmerstellen. Damit kann man die ganze shebang-Zeile inkl. Umbruch-Zeichen nach Bedarf austauschen.

Weiter mit Perl

Perl-Fertig-Scripts
Im Internet finden sie zahlreiche Angeboite fertiger Perl-Script-Pakete. Das reicht vom klassich einfachen Zugriffs-Zähler bis zu kompletten Group-Office Paketen.

Allen Paketen gemeinsam ist, dass sie eine funktionierende Perl-Installation voraussetzen.
Tipp: Beginnen sie mit einfachen kleinen Scripts, bevor sie versuchen, größere Pakete in Betrieb zu nehmen.

Perl-Entwicklung

Für Perl wurden weltweit tausende Module und Bibliotheken mit allen nur denkbaren Funktionen erstellt. Fast alle stehen ihnen kostenlos im Web zur Verfügung.
Einige Beispiele:
CGI-Programme, Mail, FTP, Whois, SerialPorts, Datenbank-Zugriff, ODBC, OpenDocument, Grafik, Kalender, Sound, Mathematik, Statistik, Suchen & Sortieren, XML, PDF, LateX, ZIP, ..., auch Betriebssystem-spezifische Funktionen: OLE, Registry, named pipes, UserManagement, ...
Details zu Perl finden sie im Kapitel Perl-Programmierung und im Internet.  

XHTML CSS