Thread Probleme mit require beim optionalen Laden von Modulen
(10 answers)
Opened by j0llyr0g3r at 2008-06-18 16:16
Hey ho,
ich hab hier ein Problem mit use und require. Ich möchte Module bedingt laden, je nach dem welche Option übergeben wird. Ich dachte folgender Code würde das bewerkstelligen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 GetOptions( 'outfile' => \$out_file, 'logfile' => \$log_file, 'verbose' => \$verbose, 'debug' => \$debug, 'modules=s@{1,}' => \$scan_modules); print_args() if $verbose; # load modules foreach my $scan_module (@$scan_modules) { require $scan_module; } Das gibt mir aber folgende Fehlermeldung: Code (perl): (dl
)
Can't locate my_package::my_module in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./inv_unix.pl line 30. Verwende ich aber ein Code (perl): (dl
)
use my_package::my_module; fest verdrahtet im source-code funktioniert das. Wo liegt mein Denkfehler? In den erwähnten Unterschieden zwischen use und require ------------------------ [nop] * use only expects a bareword, require can take a bareword or an expression * use is evaluated at compile-time, require at run-time * use implicitly calls the import method of the module being loaded, require does not * use excepts arguments in addition to the bareword (to be passed to import), require does not * use does not behave like a function (i.e can't be called with parens, can't be used in an expression, etc), whereas require does [/nop] ------------------------- sehe ich nichts was dieses Verhalten erklären würde..... |