Curso de Raku / Avanzado / Módulos / Fundamentos de módulos
Importar
Hay más de una forma de incorporar un módulo a un programa. Las tres
instrucciones use, need y require
difieren en cuándo se carga el módulo y en qué pone a
disposición.
use
Ya conoces use. Carga el módulo en tiempo de compilación
e importa sus nombres exportados, para que puedan llamarse
directamente:
use Greeting;
say hello('Anna'); # Hello, Anna!need
need también carga el módulo en tiempo de compilación,
pero no importa los nombres exportados. Aun así, puedes acceder
a las variables our del módulo a través del nombre del
módulo:
need Greeting;
say $Greeting::version; # 1.0Después de need Greeting, un simple
hello(...) no sería reconocido, porque no se importó nada —
solo los nombres calificados, como $Greeting::version,
están disponibles.
require
require carga el módulo en tiempo de ejecución
en lugar de en tiempo de compilación. Esto es útil cuando no sabes hasta
que el programa se ejecuta si un módulo será necesario, por ejemplo
cuando su nombre lo decide la entrada del usuario.
Dado que la carga ocurre en tiempo de ejecución, nada se importa automáticamente. Listar los símbolos que deseas entre corchetes angulares después del nombre los incorpora, para que puedan llamarse directamente:
require Greeting <&hello>;
say hello('Anna'); # Hello, Anna!Para el uso cotidiano, use es lo que necesitas;
need y require están ahí para los casos menos
comunes.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Quiz —
use | Quiz —
use vs need →
💪 O ve directamente a los ejercicios de esta
sección.