Perl


[ HOME | mini-faq | dclpc-faq | checkliste | perlbuch | idiot's guide ]

Jørgen W. Langs mini-FAQ für die newsgroup de.comp.lang.perl.misc


Anmerkung: Dieses Dokument liegt auch in den folgenden Formaten vor: [ .txt ]

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
		

Wichtige Informationen für neue Teilnehmer in de.comp.lang.perl.misc

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.

Hinweis in eigener Sache:

Eine FAQ, auch eine kleine, steht und fällt mit den Anregungen, Kommentaren, Ergänzungen und der Kritik ihrer Leser. Insbesondere Links ändern sich im Netz mit einem unglaublichen Tempo. Sollte Dir also ein Link auffallen, der nicht mehr funktioniert, gib' mir bitte Bescheid, damit ich die Änderungen einarbeiten kann (am besten gleich mit dem aktuellen URL). Danke.
Für alle dieses Dokument betreffenden Fragen, etc. gibt es die E-Mail-Adresse perl_mini_faq@worldmusic.de

<Wichtig!>
Um ungewollte Spam-Mails zu vermeiden _muss_ im "Subject:"-Feld der Mail das Wort "mini_faq" auftauchen. Andere Mails werden ausgefiltert.
</Wichtig!>

Die Fragen:

  1. Wo bekomme ich die aktuelle Perl-Version her?
  2. Worum geht es in de.comp.lang.perl.misc?
  3. Was sollte ich vor einem Posting beachten?
  4. Wie vermeide ich Fehler (mit use warnings, use diagnostics und use strict)?
  5. Wie kontrolliere ich die Rückgabewerte von Perl-Funktionen (um zu sehen, ob sie erfolgreich waren)?
  6. Wie soll ich bei Problemen vorgehen? Die Checkliste!
  7. Wo finde ich die Perl-Dokumentation und -FAQ (immer wieder gestellte Fragen)
  8. Welche Perl Websites sind wichtig?
  9. Wo finde ich Informationen zu den Perl Modulen?
  10. Was für Bücher sollte ich lesen?
  11. Wo finde ich archivierte USENET-Artikel (News) zu Perl?
  12. Wo finde ich weitere (allgemeine) Informationen zur Benutzung von Newsgroups?
  13. Credits, Rechtliches, Copyright zu diesem Dokument

1. Wo bekomme ich die aktuelle Perl-Version her?

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

[Index]

2. Worum geht es in de.comp.lang.perl.misc?

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

Perl:

CGI:

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:

[Index]

3. Was sollte ich vor einem Posting beachten?

Bitte beachte vor einem Posting folgende Regeln:

4. Wie vermeide ich Fehler (mit 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).

[Index]

5. Wie kontrolliere ich die Rückgabewerte von Perl-Funktionen (um zu sehen, ob sie erfolgreich waren)?

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.

[Index]

6. Wie soll ich bei Problemen vorgehen? Die Checkliste!

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.

[Index]

7. Wo finde ich die Perl-Dokumentation und -FAQ (häufig gestellte Fragen)

[ Dokumentation ] [ FAQ ]

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:

Dokumentation

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:

FAQ

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:

[Index]

8. Welche Perl Websites sind wichtig?

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.

[Index]

9. Wo finde ich Informationen zu den Perl-Modulen?

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.

[Index]

10. Wo finde ich archivierte USENET-Artikel (News) zu Perl?

Die Suchmaschine Google unterhält durchsuchbare Archive mit Newsgroup-Artikeln:

Weitere Tips zum Suchen in den Newsgroups finden sich unter:

[Index]

11. Was für Bücher sollte ich lesen?

Für Einsteiger

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.

Für Fortgeschrittene:

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:

[Index]

12. Wo finde ich weitere (allgemeine) Informationen zur Verwendung von Newsgroups?

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:

[Index]

13. Credits, Rechtliches, Copyright zu diesem Dokument

Credits und Danksagungen

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.

Nichtkommerzielle Reproduktion

Es ist erlaubt dieses Dokument in Teilen oder als Ganzes über elektronische Medien und in gedruckter Form zu verbreiten, vorrausgesetzt, dass:

Kommerzielle Reproduktion

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.

Information zu Autor und Copyright

[Index]


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:


Konzeption, Website Design und ARTwork Copyright © 1999-2002 by Jørgen W. Lang <jwl@worldmusic.de>
Copyright © 2003 - 2004 by Christian Lackas <delta@lackas.net> and Jørgen W. Lang <jwl@worldmusic.de>