Curso de Raku / Avanzado / Subrutinas

Más sobre subrutinas MAIN

En la parte de Esenciales usaste MAIN para recibir argumentos de la línea de comandos. Raku hace más por ti con MAIN que simplemente pasar los valores.

El mensaje de uso

Si los argumentos en la línea de comandos no coinciden con la firma de MAIN, Raku no ejecuta el cuerpo. En su lugar, imprime un mensaje de uso generado automáticamente que describe cómo debe llamarse el programa.

Toma este programa:

sub MAIN($name) {
    say "Hello, $name!";
}

Llamado correctamente, saluda a la persona:

$ raku hello.raku Anna
Hello, Anna!

Llamado sin argumentos, la firma no coincide, así que Raku imprime el uso en lugar del saludo:

$ raku hello.raku
Usage:
  hello.raku <name>

El mensaje se construye a partir de los nombres de los parámetros, por lo que darles nombres significativos hace que el texto de ayuda sea útil de forma gratuita.

Argumentos con nombre

Los parámetros de MAIN pueden ser con nombre además de posicionales. Un parámetro con nombre se convierte en una opción --option=value en la línea de comandos, y un valor predeterminado lo hace opcional:

sub MAIN(:$name = 'World') {
    say "Hello, $name!";
}
$ raku hello.raku
Hello, World!

$ raku hello.raku --name=Raku
Hello, Raku!

Práctica

Resuelve 1 cuestionario sobre el contenido de este tema.

Ejercicios

Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.

  1. Un flag de línea de comandos
  2. Un MAIN tipado
  3. Sumar dos argumentos

Quiz — Despacho con where   |   Un flag de línea de comandos