Philipp Hasenfratz: Modul macht nix offline?!

Beitrag lesen

Halihallo Johnny

#!/usr/bin/perl

^-- das ist im Modul über. Dafür fehlt ein >> package SomeName; <<
--- damit kann ich aber keine Variablen mehr zwischen den Modulen hin- und herreichen, oder?

Doch, aber du musst dann Exporter verwenden bzw. die Variablen etwas anders ansprechen. z. B.

Modul parse, Variable $test

$parse::test

^-- hier fehlt ein >> -w <<
--- hhhmmmm, wenn ich das einsetze, dann sagt er mir "Diese Seite kann nicht angezeigt werden." - was halte ich denn davon?!

Was du davon hälst, weiss ich nicht, aber ich halte davon, dass dein Script also noch "Unschönheiten" enthält und eben durch den -w Schalter, welche diese Ausfindig macht, zum Absturz führen. Wenn du das Script offline mit -w testest (in der Schell, nicht übern Webserver), dann siehst du die Fehlermeldungen (im Webserver siehst du diese im log, evtl.). Übern Webserver erhälst du einen Fehler, da der Perlinterpreter zuerst einige Warnungen ausgibt und erst dann den richtigen Header, das stört den Webserver und gibt den Fehler aus. Unterbinden könntest du dies (evtl.), indem du den Header in BEGIN ausgibst:

BEGIN {
   print 'Content-Type: text/html'."\015\012" x 2;
}

Befehle in BEGIN werden ganz am Anfang, also noch _vor_ der ersten Anweisung (die sich nicht in BEGIN befindet) im Script ausgeführt.

#!/usr/local/bin/perl
^-- das ist über, dafür fehlt >> use strict; <<
--- das werde ich mal umbauen...

Das würde ich dir in der Tat empfehlen. Damit verminderst du dir _einige_ Probleme, auch wenn's im Moment nicht so aussieht. Zuerst regen dich vielleicht die Fehlermeldungen auf, aber bald wirst du diese zu verhindern wissen und dann ist das use strict _sehr_ _sehr_ sinnvoll, wie auch use warnings (-w Schalter).

Nimm Dir vielleicht mal die Perl-Doku vor, Du machst sehr viele Anfängerfehler, die Dir das Leben wirklich schwer machen können.
--- ich bin schrecklich dilletantisch, was das Lernen angeht. Try and Error. Und manchmal heißt es dann aber doch: Back to Basics und wieder was an den Grundlagen tun. So wie z.B. jetzt... <zähneknisch> ;-)

Nur nicht aufgeben! Und immer fleissig die Dokus lesen, johnny! :-)

Viele Grüsse

Philipp