Mein Skript funktioniert nicht

Inhalt:

Problem

Du hast ein Skript (selbst geschrieben, oder kopiert, oder es handelt sich vielleicht auch um code aus dem Forum), das "nicht funktioniert". Nun ist es so, dass diese Beschreibung so gut wie keine ist.

Man stelle sich folgendes vor: Autoreparatur per Ferndiagnose:
Du: Bei meinem Auto geht die Heizung nicht.
Werkstatt: Dann füllen Sie mal Kühlwasser nach.
Du: Ok, aber es geht immer noch nicht.

Was erwartest du für eine Antwort? Ich würde keine Antwort erwarten; entweder fragt Dich die Werkstatt nun weiter und weiter, oder sie sagt, die Heizung ist kaputt und das Auto muss in die Werkstatt gebracht werden.

Hättest du aber stattdessen gesagt:
"Ok, ich habe ein Auto der Marke soundso, und ich habe Kühlwasser in den Behälter links (Fahrerseite) geschüttet, bis er voll war."

Dann hätte Dir die Werkstatt vielleicht sagen können:
"Tja, das war keine so gute Idee, denn der Kühlwasserbehälter ist auf der anderen Seite, und das, was Sie gerade aufgefüllt haben, war die Scheibenwaschanlage."

Das läßt darauf schließen, dass du am besten gleich nachgefragt hättest, wo der Kühlwasserbehälter ist. Dann hättest Du (sehr wahrscheinlich) wieder eine funktionierende Heizung.

Genauso verhält es sich mit Fragen im Forum:

Beispiel

Du hast ein Skript, das nicht tut, wie es soll. Erster Schritt:
Versuche es so zu kürzen, bis es den Fehler reproduziert, aber kurz genug ist, um im Forum gepostet werden zu können.
Poste das Skript (mit code-tags!), Input und Output.

Anstatt:
also, $input enthält sowas wie
123 bla
456 blabla

das ist der code:
#code

und heraus kommt irgendeine fehlermeldung mit uninitialized oder so...

wollen wir sowas sehn:

"Meine Perl-Version ist 5.8.7, Betriebssystem linux" *
# ohne strict und warnings geht nix! =)
use strict;
use warnings;

my $input = "123\tbla\n456\tblabla";
# hier steht der code, der "nicht funktioniert"
tuwas($input);

Output:
# hier sollte der Output stehen, den du per copy- und paste einfügen solltest
Use of uninitialized value in print at skript.pl line 42

Damit kann man dann was anfangen.
Mit Skript-Teilen, bei denen man nur vermuten kann, was in den Variablen steht, kann man in der Regel wenig anfangen. Oft "funktioniert" ein Skript deswegen nicht, weil in den Variablen einfach was anderes drinsteht als Du vermutest. Indem Du Dein Skript so wie oben beschrieben verkürzt und fragliche Variablen von Hand setzt (anstatt z.B. aus CGI-Parametern), kannst du vielleicht den Fehler selbst verschwinden lassen. Dann weisst du, dass es einfach nur am falschen Inhalt der Variablen liegt und nicht am Code. Wenn Du Glück hast, findest du den Fehler so selbst und brauchst gar nicht zu fragen.

*) `perl -v`, `uname -a` oder sonstiges

Ergänzungen, Kommentare

Kommentare werden am besten in folgender Form vorgenommen, damit sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff

UtilFaqSubForm edit

Titel Mein Skript funktioniert nicht
Autor TinaMueller
Bereich PerlCommunityForum
Topic revision: r3 - 2006-04-10 - 22:34:45 - TinaMueller
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.