Struppi: Perl eigene Module (use,require)

Beitrag lesen

ich habe mir ein kleines Perlscript gebaut, dass ich jetzt gern in Teilbereiche zerlegen möchte. Dazu habe ich mir die Funktionen use & require angeschaut, kriege es aber nicht hin die Variablen vom Hauptscript in das Modul zu exportieren.

Das geht zwar, aber du solltest dir aber überlegen ob du das wirklich machen willst, wenn du viele Module hast die etwas exportieren kann es schnell passieren das du den gleichen Namen für Variabeln oder Funktionen verwendest. Besser sind Zugriffsmethoden im Modul.

Mein Hauptscript:

#!/usr/bin/perl -w

use myclient;

Du solltest auf jeden Fall use strict verwenden, es erleichtert dir die Arbeit und vor allem die Fehlersuche bzw. Vermeidung.

Mein Modul:

#!/usr/bin/perl -w

das ist in einem Modul überflüssig.

package myclient;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(%CNF %BIN);

Das ist eigentlich ok, aber wie gesagt use strict wäre besser. Dann musst du %NCF und %BIN mit our deklarieren.

Wenn ich schon beim Fragen bin, @INC enthält ja die Pfade für die Module. Kann ich an diese Variable einfach manuell Änderungen vornehmen? Ich möchte meine Module gern relative zum Script (Hauptprogram) ablegen dazu muss ich aktuell allerdings im Verzeichnis sein wo das Script liegt, was ich irgendwie blöd finde. Oder kann man den Scriptpfad auslesen, dann könnte ich diesen dynamisch @INC mitgeben?

Du suchst use lib

Struppi.