Patric: Unterfunktion nicht gefunden?!?

Hallo nochmal,

habe noch ein kleines Problem, zu dem ich die Ursache nicht finden kann. Und zwar rufe ich in einem Perl-Script eine Funktion auf, die einen DB-Request durchführen soll. Aus Gründen der Besseren Wartung und Wiederverwendbarkeit habe ich die Funktion in eine externe Datei ausgelagert. Diese binde ich im aufrufenden Script mit  require "dbfunc.pl" ein. Die Dateien stehen im gleichen Verzeichnis. Anschließend rufe ich die Funktion exec_SQL auf, welche in der Datei dbfunc.pl enthalten ist. Manchmal wird die Funktion korrekt ausgeführt, manchmal ist die Parameterübergabe nicht korrekt,  manchmal allerdings erscheint im httpd.error_log das statement:

Undefined subroutine [...]::exec_SQL called at [...]

Wie kommt das? Muß ich etwas bestimmtes beachten, damit Aufrufe externer Funktionen immer korrekt durchgeführt werden?
Besten Dank. Falls Rückfragen bestehen, werde ich diese erst morgen beantworten können, denn jetzt geht's ins Bett... Bis dann.

  1. Hallo nochmal,

    habe noch ein kleines Problem,

    Undefined subroutine [...]::exec_SQL called at [...]

    Wie kommt das?

    gruesse,
    hier ein paar anregungen beim suchen:
    1.) arbeitest Du mit mod_perl??
    wenn ja, dann gibts da das problem mit den bibliotheken, die nicht nachgeladen werden, wenn
    etwas daran geaendert wird. oft verschluckt sich auch mod_perl und dann gibts diese fehlermeldungen
    Abhilfe: wenn nur ab und zu passiert, dann... (bitte nicht bei einer live-maschine) apache stoppen und starten
    (kein restart, weil das funktioniert nicht richtig, glaub mir). sonst zum entwickeln mod_perl abdrehen und aufpassen.
    2.) @INC hat auch '.' mit drin?? war mal nicht ueblich (perl -V [groszes V] sagts einem)
    3.) 'require' laedt die datei erst zur laufzeit, wenn noetig ist. mit 'use' passiert das bereits beim kompilieren.
      wenn das script 'use' vertraegt' dann sollte nichts passieren.

    sonst faellt mir momentan nichts dazu ein. mehr details waeren sicherlich hilfreicher.

    klaus