Hallo!
Wer hat eine Idee, woran das liegen könnte?
*meld* ich hab ne Idee
Du exportierst zwar die 'isEmail'-Subroutine aus ihrem Namensraum, allerdings musst du sie dazu auch explizit im Hauptnamensraum importieren.
Alternativ rufst du sie mit Angabe des Namensraumes auf:
my $rc = CheckEMail::isEmail($addr);
Was mir an der Stelle grad auffällt: Benutzt du etwa gar nicht das strict-Pragma? Sofort ab in die Ecke zum Schämen! Danach folgende Zeilen an den Anfang des Skriptes schreiben und die Fehlermeldungen beseitigen:
use strict;
use warnings;
Weitere Fragen:
Stellt man Subroutinen besser vor oder hinter das Hauptprogramm?
Geschmackssache. Prototypen werden allerdings nur erkannt, wenn du sie vor dem ersten Aufruf definierst. Die Subroutine selbst kann deswegen ja immer noch unten drunter stehen, was in der Regel der Übersicht zuträglich ist.
Wie stelle ich es an, das package als externe Datei einzubinden?
Im gleichen Verzeichnis wie das Skript als CheckEmail.pm speichern, im Skript selbst mit use CheckEmail;
einbinden. Dann funktioniert das auch mit dem Exportieren auf Anhieb :)
Zudem ist IMHO nur so ist das Bilden eines eigenen, nicht objektorierentierten Packages erst sinnvoll.
Danke für Eure Hilfe
Büddeschön
Grüße, Skrilax
Democracy is a device which ensures that we shall be governed no better than we deserve.
(G. B. Shaw)