Perl Language Caricamento di un modulo in fase di runtime


Esempio

require Exporter;

Ciò assicurerà che il modulo Exporter sia caricato in fase di runtime se non è già stato importato. (Vedi anche: perldoc -f require .)

NB: la maggior parte degli utenti dovrebbe use moduli anziché require . Diversamente use , require non chiama il metodo di importazione del modulo e viene eseguito in fase di runtime, non durante la compilazione.

Questo metodo di caricamento dei moduli è utile se non è possibile decidere quali moduli sono necessari prima del runtime, ad esempio con un sistema di plugin:

package My::Module;
my @plugins = qw( One Two );
foreach my $plugin (@plugins) {
    my $module = __PACKAGE__ . "::Plugins::$plugin";
    $module =~ s!::!/!g;
    require "$module.pm";
}

Questo proverebbe a caricare My::Package::Plugins::One e My::Package::Plugins::Two . @plugins , @plugins dovrebbe provenire da qualche input dell'utente o da un file di configurazione per avere un senso. Notare l'operatore di sostituzione s!::!/!g che sostituisce ogni coppia di due punti con una barra. Questo perché è possibile caricare i moduli utilizzando la sintassi del nome del modulo familiare da use solo se il nome del modulo è un bareword. Se passi una stringa o una variabile, deve contenere un nome di file.