PERL


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


Martin H. Slukas Perl-Checkliste -- Hilfe zur Selbsthilfe

(Quelle: http://martin.sluka.de/Perl-Checkliste.html)

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

 

Liebe de.comp.lang.perl.{misc,cgi}-Leserin,
lieber de.comp.lang.perl.{misc,cgi}-Leser,

die Erfahrung zeigt, daß sich hinter einem nicht unbeachtlichen Teil der Anfragen, die in diesen unseren Gruppen gestellt werden, zwar nicht unbedingt FAQs im engeren Sinne verbergen, diese sich aber doch oft auf einige Grundprobleme zurückführen lassen, die der jeweilige Fragesteller beziehungsweise die Fragestellerin durch die Einhaltung bestimmter Standards unschwer selbst und damit im allgemeinen auch schneller in den Griff bekommen oder zumindest genauer eingrenzen könnte.

Wir bitten Dich daher darum, bevor Du eine Anfrage an die gesamte Gruppe stellst, folgende Checkliste durchzugehen:


Checkliste

1. Mein Perl-Script verwendet den -w-Switch, d. h. es beginnt mit #!/usr/bin/perl -w (oder analog mit einem anderen Pfad) und
es werden keine Warnmeldungen ausgegeben
ich habe — trotz use diagnostics; — absolut keine Erklärung dafür, warum folgende Warnmeldung(en) ausgegeben wird/werden:

2. Ich habe es zumindest auch schon mal mit use strict; und der expliziten Deklaration sämtlicher verwendeter Variablen versucht, weil ich nämlich perlstyle(1) — zum Beispiel mittels perldoc perlstyle — studiert habe.
3. Ich prüfe den Rückgabewert sämtlicher open()-Anweisungen meines Scripts explizit mit or die $!; oder auf eine ähnlich geeignete Weise; Gleiches gilt für close()-Anweisungen, sofern es sich um das Schreiben einer Datei oder eine Pipe handelt.
4. Falls es sich um ein CGI-Script handelt und vor allem, wenn diesem CGI-Script Parameter übergeben werden (sollen):
Ich verwende das Modul CGI.pm, insbesondere zum Einlesen der Formulardaten.
Um einen "500 Internal Server Error" näher zu analysieren, habe ich bereits
die HTTP-Server-Logfiles näher untersucht und/oder
es mit use CGI::Carp 'fatalsToBrowser'; versucht.
5. Ich habe in der Perl-Doku mittels man perl und/oder perldoc und insbesondere auch man perlfaq und/oder perldoc perlfaq nach einschlägigen Passagen zu meinem Problem gesucht, kam damit allerdings leider nicht zum gewünschten Erfolg.
6. Ich habe das de.comp.lang.perl.misc-Mini-FAQ, die dort sowie in de.answers und news.answers alle sieben Tage gepostet wird, sowie gegebenenfalls das de.comp.lang.perl.cgi-FAQ und den "Idiot's Guide to Solving Perl CGI problems" gelesen, aber auch das wollte kein so rechtes Aha-Erlebnis auslösen.
7. Ich habe sämtliche derzeit auf meinem Newsserver verfügbaren Artikel in de.comp.lang.perl.{misc,cgi} durchgeschaut und auch auf http://groups.google.com/ gesucht, konnte dort aber keine Antwort finden, die zur Lösung meines Problems gereichen würde.
8. Ich habe das CPAN nach Modulen durchforstet, die zur Lösung meines Problems beitragen könnten, wurde dort aber leider nicht (ausreichend) fündig.
9. Ich verwende möglichst Perl 5.6.1 oder höher oder notfalls zumindest Perl 5.005_03. Bei allen von mir eingesetzten Modulen habe ich verifiziert, dass ich deren jeweils aktuelle Version installiert habe.

Sicher lassen sich nicht alle der genannten Punkte auf jedes Problem anwenden, wir hoffen aber, Dir damit vielleicht den ein oder anderen entscheidenden Tip gegeben zu haben, der Dir dabei helfen kann, selbst eine Lösung zu finden.

Sollte das einmal trotz allem nicht funktionieren, bist Du natürlich herzlich eingeladen, Dein Problem in de.comp.lang.perl.misc oder de.comp.lang.perl.cgi zur Diskussion zu stellen. :-)

Du kannst dabei Deine Chance, möglichst kurzfristig eine oder vielleicht sogar mehrere fundierte Antwort(en) zu erhalten, erhöhen, indem Du Dich dabei an folgende einfache Standards hältst:

  1. Bitte poste in der Regel keine Anfrage nach fertigen Scripts, vor allem nicht nach solchen für offenkundige Standardanwendungen, und jedenfalls nicht, bevor Du Dich auf http://www.cgi-resources.com/ danach umgesehen hast.
  2. Bitte wähle für Dein Posting eine aussagekräftiges Subject! (vgl. hierzu auch http://www.perl.com/CPAN/authors/Dean_Roehrich/subjects.post) Beispiele aus der Praxis, wie man es nicht machen sollte, sind
  3. Bitte gib eine möglichst exakte Beschreibung Deines Problems sowie der (beabsichtigten und tatsächlichen) Funktionsweise Deines Scripts, beispielsweise
  4. Bitte gib das Betriebssystem sowie die Version des Perl-Interpreters, unter denen Du das Problem beobachtet hast, sowie ggf. die Versionsnummern sämtlicher eingesetzten Module an (vgl. "perl -V", "perldoc CPAN")!

  5. Bitte poste die Teile Deines Codes, die für das Problem voraussichtlich relevant sein könnten, aber auch nur diese Teile. Generell sollte das Codestück keinesfalls länger als etwa 42 Zeilen sein.
  6. Bitte baue diese(s) Codestück(e) als normalen Text in Deinen Artikel ein, nicht als Attachment oder gar uuencoded, wie überhaupt Dein gesamter Artikel sich auf "text/plain" beschränken sollte.
  7. Erwähne am besten kurz, welche Punkte der obigen Checkliste (erster Teil) Du bereits erfolglos versucht hast, denn wenn Dein guter Wille, das Problem selbst in den Griff zu bekommen, ersichtlich ist, wächst die Lust vieler, Dir zu helfen.

Dies sind jedoch nur die wesentlichsten Punkte. Falls Du noch gar keine Erfahrungen mit dem Posten von Usenet-Artikeln gesammelt hast, schau Dir bitte im Interesse aller Beteiligten die einschlägigen Artikel hierzu in de.newusers.infos an.

Doch nun erst einmal viel Spaß und Erfolg bei der Fehlersuche! :-)