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

Eksporta tagi

Atzīmējot apakšprogrammu ar is export, tā tiek ielikta moduļa noklusētajā eksporta grupā — nosaukumos, ko ienes vienkāršs use. Dodot is export birku, eksportus var sašķirot nosauktās grupās un ļaut katrai programmai izvēlēties vēlamo kopu.

Birku raksta iekavās aiz is export:

unit module Greeting;

sub hello($name)   is export            { "Hello, $name!" }
sub goodbye($name) is export(:partings) { "Goodbye, $name!" }

hello nav birkas, tāpēc tā pieder noklusētajai grupai; goodbye ir apzīmēta ar :partings.

Vienkāršs use importē tikai noklusēto grupu:

use Greeting;      # hello is available; goodbye is not

Nosaucot birku, tiek importēta tā grupa — un, iespējams, pārsteidzoši, ne arī noklusētā:

use Greeting :partings; # goodbye is available; hello is not

Prasot :partings, iegūstat tieši šo grupu. Lai ievilktu visu, ko modulis eksportē, izmantojiet iebūvēto birku :ALL:

use Greeting :ALL; # both hello and goodbye

Divas īpašas birkas ir vērts zināt. :ALL atbalsta katrs modulis, un tā importē visus tā eksportus. :MANDATORY ir tāda, ko varat uzlikt rutīnai, kurai jātiek importētai neatkarīgi no tā, kuru birku izsaucējs izvēlas.

Katra birka patiesībā ir pakotne moduļa pakotnē EXPORT — piemēram, Greeting::EXPORT::partings —, un tieši to uzskaita moduļu introspekcija. Birkas ļauj lielākam modulim noturēt savu noklusēto virsmu nelielu, joprojām piedāvājot papildu iespējas pēc pieprasījuma.

Prakse

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

Kursa navigācija

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


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