Hallo,
ich habe ein Modul „MyFunctions.pm“, das ich mittels „use MyFunctions;“ in mein CGI-Skript einbinde. Eine darin enthaltene Funktion „TestVar()“ rufe ich dann einfach mit ihrem Namen auf.
Auf meinem Entwicklungs-Server (PWS unter Win98-Rechner mit ActivePerl5) läuft das Skript sowohl unter DOS (direkt mit Perl), als auf im Browser tadellos.
Problem: Wenn ich das Skript auf einen Unix-Server lade, wird das Skript gar nicht erst ausgeführt, sondern mit dem folgenden Fehler abgebrochen:
Can't call method "import" in empty package "MyFunctions" at test3.cgi line 4.
BEGIN failed--compilation aborted at test3.cgi line 4.
Wenn ich nun im Modul einfach ein „package MyFunctions;“ oben hinzufüge und die Funktionen im Skript auf die Weise „MyFunctions::TestVar()“ aufrufe, dann geht´s. Aber ich wollte mir das „MyFunctions::“ eigentlich sparen. Geht das irgendwie?
Auch sonst ist der Unix-Server recht penibel, was CGI angeht. Das „use CGI::Carp qw(fatalsToBrowser);“ funktioniert auch nicht (gleiche Fehlermeldung wie oben), und der Browser zeigt bei jeder Perl-Meldung einfach „Server Error“ an. Debugging ist da praktisch unmöglich. Der Windows-Server ist da geschmeidiger: Der verschluckt die Meldungen einfach und macht weiter. Die fehlerhafte Ausgabe wird dann einfach übersprungen.
Ich danke für eventuelle Hinweise!
Kristian