Raku kurss / Padziļināti / Moduļi / Moduļu pamati

Importēšana

Ir vairāk nekā viens veids, kā ienest moduli programmā. Trīs teikumi use, need un require atšķiras ar to, kad modulis tiek ielādēts un ko tas padara pieejamu.

use

Ar use jau esat iepazinušies. Tas ielādē moduli kompilēšanas laikā un importē tā eksportētos nosaukumus, tāpēc tos var izsaukt tieši:

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

need

Arī need ielādē moduli kompilēšanas laikā, taču tas neimportē eksportētos nosaukumus. Moduļa our mainīgos joprojām sasniedzat caur moduļa nosaukumu:

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

Pēc need Greeting kails hello(...) netiktu atpazīts, jo nekas netika importēts — pieejami ir tikai kvalificētie nosaukumi, piemēram, $Greeting::version.

require

require ielādē moduli izpildes laikā, nevis kompilēšanas laikā. Tas noder, kad līdz pat programmas izpildei nezināt, vai modulis būs vajadzīgs, — piemēram, kad tā nosaukumu nosaka lietotāja ievade.

Tā kā ielāde notiek izpildes laikā, nekas netiek importēts automātiski. Uzskaitot vēlamos simbolus leņķa iekavās aiz nosaukuma, tie tiek ievilkti, un tos var izsaukt tieši:

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

Ikdienas lietošanai vajadzīgs use; need un require ir retāku gadījumu vajadzībām.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Viktorīna — use   |   Viktorīna — use pret need


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.