Der folgende Perl-Code ..
%Vor%.. funktioniert unter Windows, funktioniert aber nicht unter allen anderen Plattformen ("Win32.pm kann nicht in @INC gefunden werden"). Wie weise ich Perl an, Win32 nur unter Windows zu importieren und die Importanweisung unter allen anderen Plattformen zu ignorieren?
Dieser Code funktioniert in allen Situationen und führt das Laden zur Kompilierungszeit durch, da andere Module, die Sie erstellen, davon abhängen können:
%Vor% Dies liegt daran, dass use Module (qw(foo bar))
äquivalent zu BEGIN { require Module; Module->import( qw(foo bar) ); }
ist, wie in perldoc -f beschrieben.
(EDIT, ein paar Jahre später ...)
Das ist aber noch besser:
%Vor% Lesen Sie mehr über das if
pragma hier .
require Module;
Aber use
ruft auch import
auf, require
nicht. Wenn das Modul also in den Standardnamespace exportiert, sollten Sie auch
import Module qw(stuff_to_import)
;
Sie können auch eval "use Module"
- was gut funktioniert, wenn Perl zur Laufzeit den richtigen Pfad finden kann.