Corso di Raku / Avanzato / Moduli / Basi dei moduli / Exercises / Caricare a runtime
Soluzione: Caricare a runtime
Ecco una possibile soluzione del compito.
Codice
Il programma, require-import.raku:
sub MAIN(Bool :$quiet) {
if $quiet {
say 'Silence.';
}
else {
require Greeting <&hello>;
say hello('Sam');
}
}🦋 Puoi trovare entrambi i file sorgente nella directory exercises/advanced/modules-basics/require-at-runtime.
Output
$ raku -I. require-import.raku
Hello, Sam!
$ raku -I. require-import.raku --quiet
Silence.Commenti
requirecarica il modulo a tempo di esecuzione anziche al momento della compilazione. Da solo non importa nulla, motivo per cui un semplicehellonon sarebbe riconosciuto.La lista
<&hello>dice arequiredi importare quel singolo simbolo, cosi dopo l’istruzionehello('Sam')puo essere chiamato direttamente, producendoHello, Sam!.Questo e lo scopo di
require: poiche viene eseguito a tempo di esecuzione, puo trovarsi dentro unif. Quando viene passato--quiet, quel ramo viene saltato e il modulo non viene mai caricato — cosa che unuseal momento della compilazione non potrebbe evitare.