Archive-name: de/comp-lang-perl/mini-faq Posting-frequency: weekly Last-modified: 2004-10-26 Version: 1.16 URL: http://www.worldmusic.de/perl/mini-faq.html
Lieber Leserin, lieber Leser,
Jeden Tag laufen in de.comp.lang.perl.misc eine Menge Fragen und Nachrichten auf. Viele dieser Fragen und Problemstellungen sind mittlerweile sehr gut dokumentiert und ausführlich beantwortet.
Bevor Du also hier postest, unternimm' bitte die Anstrengung, zuerst einmal selbst eine Antwort auf Deine Frage zu finden. Die untenstehen Resourcen sollen Dir dabei helfen.
<Wichtig!>
Um ungewollte Spam-Mails zu vermeiden _muss_
im "Subject:"-Feld der Mail das Wort "mini_faq" auftauchen.
Andere Mails werden ausgefiltert.
</Wichtig!>
use warnings
,
use diagnostics
und use strict
)?Die aktuelle stabile Version von Perl ist 5.8.5 (Quelle: www.perl.com, Stand 26.10.2004).
Sie kann unter folgender Adresse heruntergeladen werden:
Zum Selbstkompilieren: | |
Unixoide Systeme (Linux, FreeBSD, Solaris, MacOS X, ...) | http://www.perl.com/CPAN/src/stable.tar.gz |
Microsoft Systeme | http://www.perl.com/CPAN/src/stable.zip |
Fertig kompilierte Versionen finden sich hier: | |
Perl für Win32 Systeme (Windows 95/98/ME und NT/2k/XP, ... ) und Linux, Solaris | http://www.activestate.com/ActivePerl/ |
Macintosh - MacPerl | http://www.macperl.com/ |
Weitere fertig kompilierte Versionen finden sich hier: | |
Perl für Systeme von Acorn bis z/OS | http://www.perl.com/CPAN/ports/index.html |
In de.comp.lang.perl.misc geht es um Fragen rund um Perl als Programmiersprache.
In der Charta für die Newsgroup wurde festgelegt:
Charta: In dieser Gruppe geht es um Larry Walls Perl-System,
soweit das Thema nicht von anderen Gruppen der Unterhierarchie
abgedeckt ist.
Für Antworten auf spezielle Fragen zu CGI-Skripten in Perl gibt es die gesonderte Newsgroup:
Crossposts (also das gleichzeitige Absetzen der Artikel in mehrere Newsgroups ist im Allgemeinen unerwünscht, da ein Thema nicht gleichzeitig ein spezielles CGI-Thema als auch ein allgemeines Perl-Thema (ohne CGI) sein kann). In wohldurchdachten Ausnahmen bitte ein Followup-To auf eine passende Gruppe setzen.
Für die Perl/CGI-Newsgroup existiert eine eigene FAQ, zu finden unter
Für Fragen zu CGI-Scripts in anderen Programmiersprachen gibt es die Newsgroup
Anmerkung: die Gruppe de.comm.infosystems.www.authoring.cgi existiert AFAIK nicht mehr.
Wenn du Probleme mit deinem Webserver hast (eine Frage, die auch hauptsächlich im CGI-Umfeld vorkommt), dann wende dich bitte an
Parallel dazu die englischsprachigen Newsgroups
Die führende Sammlung von Funktionen für CGI-Anwendungen ist:
Ausserdem könnte "libwww-perl" (auch "LWP" genannt) für Dich von Interesse sein. Mit dieser Sammlung von Modulen ist es u.a. möglich HTTP/FTP-Zugriffe in Perl zu realisieren. Das Modul findest sich hier:
Falls Du Schwierigkeiten mit einem CGI-Script hast, schau mal unter folgenden URLs:
Bitte beachte vor einem Posting folgende Regeln:
use warnings
, use diagnostics
und use strict
)?Fängt dein Programm so (oder so ähnlich) an?
#! /usr/local/bin/perl
use warnings;
use diagnostics;
use strict;
Falls nein, dann solltest du das schleunigst ändern...
Diese drei sogenannte "Pragmas" schalten die erweitere Fehlerprüfung ein und erhöhen die Anzahl von Warnungen, die Perl auspuckt, um die beim Suchen deines Problems zu helfen.
Das Pramga warnings
ersetzt ab der Version 5.6.0 den
bisher üblichen -w
-Shebang-Zeilen-Switch. Hiermit
werden alle möglichen Warnungen über mögliche Fehler
angezeigt (eine Beschreibung der Fehler findet sich in der
"perldiag"-Seite der Dokumentation). Allerdings werden die
Warnungen hiermit nur für die lokale Datei (und nicht etwa auch
noch für eingebundenen Module) eingeschaltet.
Mit der Eingabe von perldoc warnings
auf der Kommandozeile
wird die Dokumentation zu diesem Pragma angezeigt. Die Benutzung der
Perl-Dokumentation ist unter Punkt 6 dieser
mini-FAQ erklärt. Siehe auch
warnings
Und use diagnostics
sorgt dafür, dass die
"warnings"-Warnungen detaillierter erklärt werden (mit den
Erklärungen der perldiag-Seite der Dokumentation).
Das dritte Pragma im Bunde (use strict
) generiert
Fehler(-meldungen) zur Compile- und Laufzeit für gewisse
unsichere Variablen, Referenzen und Unterroutinenkonstrukte
(erklärt auf der strict-Seite der Dokumentation).
Kontrollierst Du den Rückgabewert von in Perl integrierten
Funktionen?
Die meisten Datei- und Systemfunktionen setzen bei Fehlern die Variable
$!
(s. perlvar)
und liefern eigene Rückgabewerte.
Hier ein Beispiel, in dem versucht wird, eine Datei zum Schreiben
zu öffnen.
Schlägt die Anweisung fehl, wird eine Fehlermeldung
ausgegeben, die eine Beschreibung des Fehlers enthält und den
Inhalt der Variablen $!
mit ausgibt und danach das
Programm beendet:
open PASSWD, '>', '/etc/passwd' or
die "Fehler beim Oeffnen von /etc/passwd. Grund: $!\n";
Die Spezialvariable $!
enhält eine Fehlermeldung,
die Dir mehr Informationen darüber liefern kann, aus welchem
Grund Dein Programm fehlgeschlagen ist.
Das Perldokument perlfunc gibt auführlich Auskunft über die Rückgabewerte von Funktionen.
Lässt man das Newlinezeichen "\n"
am Ende der
"die"
-Anweisung weg, so wird nach der Fehlermeldung
und dem Inhalt von $!
auch noch der Skriptname und die
Zeilennummer mit ausgegeben.
Unter der URL:
findest Du Martin H. Slukas Checkliste, mit der die Fehlersuche (und -vermeidung!) zum Kinderspiel wird. Bitte auf jeden Fall durchgehen bevor du deine Frage postest.
FAQs (kurzform für Frequently Asked Questions, also häufig gestellte Fragen) sind eine Sammlung von Fragen (und idR auch Antworten), die schon sehr oft diskutiert und umfassend beantwortet wurden. Das stellen solcher Fragen in der Newsgroup sollte nach Möglichkeit vermieden werden, da man sich die Antworten sehr leicht anderweitig besorgen kann.
Viele Fragen zur Programmierung von Perl werden in der Perl-Dokumention beantwortet. Sie ist in der Regel Teil der Perl-Standarddistribution. Das bedeutet, dass sich ein Grossteil der Antworten bereits auf dem Rechner befinden, auf dem Perl installiert ist.
Seit der Perl Version 5.004 sind auch die FAQs Teile der Standarddistribution.
Die Doku, sowie die FAQ sind bei Betriebssystemen, die über eine Kommandozeile verfügen, durch die Eingabe folgender Befehle zu erreichen.
Das Zeichen "%" steht hier für eine Eingabe auf der Kommandozeile. Nicht miteingeben!
Das Inhaltsverzeichnis zur Dokumentation:
% perldoc perltoc
Das Inhaltsverzeichnis zur FAQ:
% perldoc perlfaq
Die einzelnen Teile der Dokumentation/FAQ sind über die Eingabe von "perldoc" (ohne die Anführungszeichen), einem Leerzeichen und dem Namen des dazugehörigen Dokumentes zu erreichen.
Beispiel: % perldoc perltrap
Die gezielte Suche nach Funktionen in der Dokumentation lässt sich mit der Verwendung des '-f'-Switches von perldoc bewerkstelligen:
Beispiel: % perldoc -f SUCHBEGRIFF
Die Suche nach Schlüsselwörtern in den Überschriften der FAQ funktioniert mit Hilfe des '-q'-Switches:
Beispiel: % perldoc -q SUCHBEGRIFF
Auf dem Macintosh sind diese Dokumente über das Hilfe-Menü direkt aus MacPerl heraus und mit der Tastenkombination "Apfel- ("Command"-) H" zugänglich, unter Unix ausserdem -- wie üblich -- idR auch als manpages.
In der "ActivePerl"-Distribution von Perl ist die Dokumentation i.d.R. ausserdem in HTML-Form zugänglich.
Hier ein kurzer Überblick über die Themen, mit einer Liste der dazugehörigen Dokumente:
Operatoren (<>=,+ etc..) | perlop |
Funktionen (print, split, etc..) | perlfunc |
Objekte | perltoot, perlref, perlmod, perlobj, perltie |
Datenstrukturen | perlref, perllol, perldsc |
Module | perlmod, perlsub perlmodlib |
Reguläre Ausdrücke | perlre, perlfunc, perlop, |
Der Wechsel von Perl 4 zu Perl 5 | perltrap, perl |
Perl und C gemeinsam benutzen | perlxstut, perlxs, perlcall, perlguts, perlembed |
Die (englische) Dokumentation ist unter folgender URL auch im WWW zu finden:
Eine Kurzreferenz zum Herunterladen findet sich unter:
perlfaq1 | Allgemeine Fragen zu Perl |
perlfaq2 |
Wo man Perl herbekommt und wie man Perl lernt: (Wo gibt es den Quellcode von Perl, wo finde ich die Dokumentation, Unterstützung, Training und verwandte Bereiche) |
perlfaq3 | Programmierwerkzeuge und -unterstützung: |
perlfaq4 | Manipulation von Daten: (Wie man Zahlen, Daten (als Plural von "Datum"), Strings, Arrays und Hashes manipuliert, sowie diverse Aspekte der Datenbearbeitung.) |
perlfaq5 | Dateien und Formate: (Eingabe/Ausgabe (I/O), Dateihandles, flushing, Formate, Fusszeilen (footers)) |
perlfaq6 | Pattern Matching und Reguläre Ausdrücke: |
perlfaq7 | Generelle Fragen zu Perl als Programmiersprache, die in keine der anderen Abteilungen passen: |
perlfaq8 | Interaktion mit dem
System: (Interprozess-Kommunikation (IPC), Kontrolle über die Benutzerschnittstelle (Tastatur, Bildschirm. Maus)) |
perlfaq9 | Perl und Netzwerke |
Die FAQ ist unter folgender URL auch im WWW zu finden:
Für die Perl-Distribution von Activestate existiert eine FAQ, auf der Activestate-Website:
Weitere Fragen werden beantwortet auf der privaten FAQ von Achim Grolms:
Hast Du Im WWW schon einmal unter
nachgeschaut?
Dies ist die "offizielle" Perl Website. Hier finden sich Hinweise und Links zu den Modulen im Comprehensive Perl Archive Network (CPAN, http://www.cpan.org/), Artikel über die "Eingeweide" von Perl und mehr.
Die komplette Perl-Dokumentation findest du auf deiner Festplatte (sofern Du Perl bei Dir installiert hast, was wir schwer hoffen) , oder unter
Deutschsprachige Online-Perl-Tutorials findest Du unter:
Das Comprehensive Perl Archive Network (CPAN) enhält die vollständigste Sammlung von Materialen, Informationen und Resourcen zum Thema Perl und ist im WWW erreichbar unter:
Die folgenden URLs bieten die Möglichkeit CPAN über das WWW zu durchsuchen:
Die letzten beiden Suchmaschinen scheinen nicht mehr aktuell zu sein.
Hast Du überprüft, ob es bereits ein Modul gibt, das bereits die Funktionen bereitstellt, die Du brauchst?
Es gibt bereits eine Menge Module, die man sich nur herunterladen muss, und sie gleich benutzen kann. Details finden sich unter:
Unter der Adresse
finden sich zu einigen Modulen deutschsprachige Versionen der Dokumentation. Allerdings sind diese Dokumente inzwischen etwas "angestaubt". Die Übersetzungen stammen aus dem Jahr 1998, sind also bereits mehrere Jahre alt. Sie sollten daher bestenfalls zum allgemeinen Verständis der Funktionsweise der Module verwendet werden. Im CPAN gibt es die Dokumentation zu (fast) allen Modulen quasi tagesaktuell.
Die Suchmaschine Google unterhält durchsuchbare Archive mit Newsgroup-Artikeln:
Weitere Tips zum Suchen in den Newsgroups finden sich unter:
Titel: | Einführung in Perl (Das "Lamabuch") |
Autor: | Randal L. Schwartz & Tom Phoenix |
Bemerkungen: | Deutsche Übersetzung von Jørgen W. Lang |
Auflage: | 3. Auflage 2002 |
ISBN: | 3-89721-147-5 |
Verlag: | O' Reilly |
URL: | http://www.oreilly.de/catalog/einperl3ger/ |
Preis: | 34,- |
Beschreibung: |
Das Standardwerk für den Einstieg. Geschrieben
von zwei der Perl-Gurus. Mit speziellen Übungen am Ende jedes Kapitels. |
Titel: | Programmieren mit Perl (Das "Kamelbuch") |
Autor: | Larry Wall, Tom Christiansen, Jon Orwant |
Bemerkungen: | Deutsche Übersetzung von Peter Klicman |
Auflage: | 2. Auflage 2001 (Übersetzung der 3rd Edition des Originals) |
ISBN: | 3-89721-144-0 |
Verlag: | O'Reilly |
URL: | http://www.oreilly.de/catalog/pperl3ger/ |
Preis: | 56,- |
Beschreibung: |
Die Perl-Bibel. Umfassendes Referenzwerk. Geschrieben vom Vater von Perl, Larry Wall, und zwei der wohl größten Perl-Gurus. |
Titel: | Perl Kochbuch (Das "Dickhornschafbuch") [ # wow ! ;-) ] |
Autor: | Tom Christiansen & Nathan Torkington |
Bemerkungen: | Deutsche übersetzung von Peter Klicman & Eike Grote |
Auflage: | 1. Auflage 1999 |
ISBN: | 3-89721-140-8 |
Verlag: | O'Reilly |
URL: | http://www.oreilly.de/catalog/cookbookger/index.html |
Preis: | 46,- |
Beschreibung: | Lösungsbuch für die meisten immer wieder auftauchenden Problemstellungen in Perl. |
Eine ausführlichere Liste mit deutschsprachigen Büchern zum Thema Perl findet sich unter:
Speziell für Neuankömmlinge in der Welt des USENET gibt es die beiden Gruppen:
Hier findest du Informationen, die dir beim Arbeiten mit News hilfreich sind und kannst allgemeine Fragen zu diesem Thema stellen. Die Newsgroup dni ist dabei nur zum Lesen gedacht. Hier eine Auswahl der Artikel, die du als Neuling lesen solltest:
Dieses Dokument wurde inspiriert durch Nathan Torkington's Perl mini faq in comp.lang.perl.misc
Dieses Dokument wäre nicht möglich gewesen ohne die Hilfe und Hinweise der folgenden Personen:
und alle anderen, die direkt oder indirekt zum Entstehen und der Pflege dieses Dokumentes beigetragen haben.
Es ist erlaubt dieses Dokument in Teilen oder als Ganzes über elektronische Medien und in gedruckter Form zu verbreiten, vorrausgesetzt, dass:
Anfragen zu allen anderen Rechten für die Verbreitung, einschliesslich der Integration dieses Dokumentes in Teilen oder als Ganzes, in kommerziellen Produkten, wie (aber nicht nur) Büchern, Zeitungsartikeln, Software oder CD-ROMs sind zu richten an
Jede Art der kommerziellen Reproduktion dieses Dokumentes oder von Teilen hieraus ohne vorherige schriftliche Erlaubnis des Autors ist nicht gestattet und wird entsprechend verfolgt.
Viel Glück bei Deiner Arbeit mit Perl!
Jørgen W. Lang, Christian Lackas
Kritik, Änderungswünsche, Korrekturen und Anregungen sind immer willkommen ! Hierfür gibt es die Adresse: