Corso di Raku / Avanzato / Moduli / Basi dei moduli

Importazione

Esiste piu di un modo per portare un modulo in un programma. Le tre istruzioni use, need e require differiscono per quando il modulo viene caricato e per cosa rende disponibile.

use

Hai gia incontrato use. Carica il modulo al momento della compilazione e importa i suoi nomi esportati, cosi possono essere chiamati direttamente:

use Greeting;
say hello('Anna'); # Hello, Anna!

need

need carica anch’esso il modulo al momento della compilazione, ma non importa i nomi esportati. Si raggiungono comunque le variabili our del modulo attraverso il nome del modulo:

need Greeting;
say $Greeting::version; # 1.0

Dopo need Greeting, un semplice hello(...) non verrebbe riconosciuto, perche nulla e stato importato — sono disponibili solo i nomi qualificati, come $Greeting::version.

require

require carica il modulo a tempo di esecuzione anziche al momento della compilazione. Questo e utile quando non si sa fino all’esecuzione del programma se un modulo sara necessario, per esempio quando il suo nome viene deciso dall’input dell’utente.

Poiche il caricamento avviene a tempo di esecuzione, nulla viene importato automaticamente. Elencando i simboli desiderati tra parentesi angolari dopo il nome, li si importa e possono essere chiamati direttamente:

require Greeting <&hello>;
say hello('Anna'); # Hello, Anna!

Per l’uso quotidiano, use e quello che serve; need e require sono li per i casi meno comuni.

Pratica

Risolvi 1 quiz sul contenuto di questo argomento.

Quiz — use   |   Quiz — use vs need


💪 Oppure vai direttamente agli esercizi di questa sezione.