Kurso de Raku / Progresinta / Subprogramoj

Pli pri MAIN-subrutino

En la parto Esencaĵoj vi uzis MAIN por ricevi komandliniajn argumentojn. Raku faras pli por vi ĉirkaŭ MAIN ol nur transdoni la valorojn.

La uzad-mesaĝo

Se la argumentoj en la komandlinio ne kongruas kun la signaturo de MAIN, Raku ne plenumas la korpon. Anstataŭe, ĝi presas aŭtomate generitan uzad-mesaĝon, kiu priskribas kiel la programo devus esti vokita.

Prenu ĉi tiun programon:

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

Vokite ĝuste, ĝi salutas la personon:

$ raku hello.raku Anna
Hello, Anna!

Vokite sen argumento, la signaturo ne kongruas, do Raku presas la uzadon anstataŭ la saluton:

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

La mesaĝo estas konstruita el la nomoj de la parametroj, do doni al ili signifoplenajn nomojn faras la helptekston utila senpage.

Nomitaj argumentoj

Parametroj de MAIN povas esti nomitaj same kiel poziciaj. Nomita parametro fariĝas --option=value ŝaltilo en la komandlinio, kaj defaŭlta valoro faras ĝin nedeviga:

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

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

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Ekzercoj

En ĉi tiu sekcio estas 3 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.

  1. Komandlinia flago
  2. Tipita MAIN
  3. Aldoni du argumentojn

Kursa navigado

Kvizo — Dissendo kun where   |   Komandlinia flago