Thread Erweitern von @INC: Anfängerfrage
(19 answers)
Opened by daemon079 at 2006-03-30 17:10
[quote=master,30.03.2006, 16:38]dazu habe ich auch eine (mir etwas peinliche) frage:
Ich möchte meine eigenen Module nicht in Perl/lib usw. laden, sondern aus einem eigenen Verzeichnis oberhalb des Skirpts. z.b. Dateisktruktur: meinskript.pl libs/meinmodul.pl Wie erreicht man sowas?[/quote] Module sollten auf .pm enden, nicht auf .pl. Da i.d.R. der . zum @INC gehört, kannst Du Dein Modul beispielsweise mit Code (perl): (dl
)
use libs::mein_modul; einbinden. Voraussetzung ist, dass das Modul auch sauber so definiert wurde, also wenigstens mit Code (perl): (dl
)
package libs::mein_modul; eingeleitet wird. Struktur: skript.pl libs/mein_modul.pm Beispiel fuer einen Modul-Skelett: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 # Author # Date # Purpose # rename package! #package modul_skel; package libs::modul_skel; use strict; use Exporter; # alle notwendigen Variablen, exportierbar oder auch nicht, # muessen hier deklariert werden use vars qw($VERSION @ISA @EXPORT $share); $VERSION = '0.0.1'; @ISA = qw(Exporter); # alle Objekte (Variablen, Funktionen), die auch exportiert werden sollen, # muessen hier rein @EXPORT = qw($share foo bar); # Variablen # ------------------------------------------------------------------------ # $share = 'hello world'; # Sub-Routinen # ------------------------------------------------------------------------ # sub foo { # do foo } sub bar { # do bar } # Module muessen mit Status 1 beendet werden 1; # vim: set ts=4 sw=2 et: Modul Skelett ohne Gewähr da QuickHack.\n\n <!--EDIT|Linuxer|1143731366--> meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |