Albert: Prozeduren in Modul nicht aufrufbar

Beitrag lesen

Hallo!

Ich habe mich an einem Problem ziemlich festgebissen und komme einfach nicht mehr weiter.

Ich habe Win2K mit SP3 auf meinem neuen Notebook installiert. Dazu Apache2 (2.0.39) und ActiveState Perl 5.6.1 (build 633). Ich habe (hoffentlich) alles konfiguriert, prinzipiell läuft es. Ich habe allerdings mit allen Skripten Probleme, die Subroutinen in selbstgeschriebenen Modulen aufrufen. Ich habe stundenlang versucht den Fehler einzugrenzen, finde aber nichts.

Das Skript a.cgi sieht wie folgt aus:
use test;

print "Content-type...

my $instanz = test->new();

Das Modul test.pm, im selben Verzeichnis liegend sieht ca. so aus:
package test;

sub new
{
  print "Test erfolgreich";
}

1;

mit use CGI::Carp qw(fatalsToBrowser); konnte ich feststellen, dass nicht der Aufruf des Moduls, das Problem ist, sondern der Aufruf der Funktion. Wenn ich use x, verwende (Modul gibts nicht), kommt es "brav" dort zum Fehler. Ich habe @INC geprüft, dort passt auch alles (2 Verzeichnisse von Perl und . für das aktuelle Verzeichnis)

Ich kann also nur darauf schließen, dass das Modul erfolgreich geladen wird, aber dann tatsächlich der Aufruf nicht funktioniert. Am Browser wird dieser Fehler und diese Zeilennummer ausgegeben (und natürlich, dass das Package wahrscheinlich nicht geladen ist :-(

Die Skripte sind sicherlich auch korrekt, weil ich sie bereits auf Apache 1.3 unter WinNT4 mit Ative Perl build 522 laufen und nur überspielt wurden.

Wenn ich das Package direkt in das Skript a.cgi integriere, funktioniert alles hingegen. Ich hatte dasselbe Problem bereits bei einem Kunden. Der IT-Manager hat ActivePerl installiert und meine Skripte liefen dort erst, nachdem ich das Package direkt in das Skript gespielt habe.

lieben Dank für Eure Hilfe
Albert