Raku-Kurs / Fortgeschritten / Module / Modul-Grundlagen
Importieren
Es gibt mehr als einen Weg, ein Modul in ein Programm einzubinden.
Die drei Anweisungen use, need und
require unterscheiden sich darin, wann das Modul
geladen wird und was es verfügbar macht.
use
Du hast use bereits kennengelernt. Es lädt das Modul zur
Kompilierzeit und importiert seine exportierten Namen, sodass sie direkt
aufgerufen werden können:
use Greeting;
say hello('Anna'); # Hello, Anna!need
need lädt das Modul ebenfalls zur Kompilierzeit,
importiert aber nicht die exportierten Namen. Du erreichst die
our-Variablen des Moduls weiterhin über den Modulnamen:
need Greeting;
say $Greeting::version; # 1.0Nach need Greeting würde ein einfaches
hello(...) nicht erkannt werden, da nichts importiert wurde
— nur die qualifizierten Namen wie $Greeting::version sind
verfügbar.
require
require lädt das Modul zur Laufzeit statt zur
Kompilierzeit. Das ist nützlich, wenn du erst während der
Programmausführung weißt, ob ein Modul benötigt wird, zum Beispiel wenn
sein Name durch Benutzereingabe bestimmt wird.
Da das Laden zur Laufzeit geschieht, wird nichts automatisch importiert. Wenn du die gewünschten Symbole in spitzen Klammern nach dem Namen auflistest, werden sie eingebunden, sodass sie direkt aufgerufen werden können:
require Greeting <&hello>;
say hello('Anna'); # Hello, Anna!Für den alltäglichen Gebrauch ist use die richtige Wahl;
need und require sind für die weniger häufigen
Fälle da.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Quiz —
use | Quiz —
use vs need →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.