use VERSION
Importuoja semantiką į einamąjį paketą iš įvardinto modulio, paprastai pavadindama tam tikrą paprogramę ar kintamųjų vardus pakete. Tai visiškai tolygu
BEGIN { require Module; import Module LIST; }
išskyrus tai, kad Module privalo būti pliku žodžiu.
VERSION gali paimti arba skaitinę reikšmę kaip kad 5.006, kas bus palyginama $]
, arba raidinę, formoje v5.6.1, kas bus sulyginama su $^V
(aka $PERL_VERSION. Lemtinga klaida bus duodama, jei VERSION yra didesnė negu dabartinė Perl interpretatoriaus versija; Perl nebandys net parsint likusios failo dalies. Palyginimui require, kuris gali atlikti panašius patikrinimus paleidimo metu.
Nurodyti VERSION kaip raidinę formą v5.6.1 bendrai turėtų būti vengiama, nes tai kartais veda į visiškai neaiškias klaidų žinutes ankstesnėse Perlo versijose, kurios nepalaiko šios sintaksės. Geriau tokiu atveju naudojama atitinkama skaitinė versija.
use class=v>v5.6.1; # compile time version check
use class=v>5.6.1; # ditto
use 5.006_001; # ditto; preferred for backwards compatibility
Tai dažnai naudinga, norint patikrinti dabartinę Perl versiją prieš
use
inant bibliotekos modulius, kurie pasikeitė nesuderinamais būdais iš senesnių Perl versijų. (Mėginama tai daryti ne daugiau, nei yra būtina).
BEGIN
verčia require
ir
import
būti vykdomiems kompiliavimo metu. require
užtikrina, kad modulis būtų užkrautas į atmintį, jei to dar nepadaryta. import
nėra builtin'as - tai tiesiog statinis metodo iškvietimas į Module
paketą liepti moduliui suimportuoti galimybių sąrašą atgal į einamąjį paketą. Modulis gali realizuoti import
metodą bet kuriuo jam patinkančiu būdu, nors dauguma modulių tiesiog pasirenka galimybę įgyti import
metodą
per paveldėjimą iš Exporter
klasės, kuri yra apibrėžta Exporter
modulyje. Žr.
Exporter. Jei import
metodas nerandamas, kvietimas gali būti praleistas.
Jei nenorite iškviesti paketo import
metod(pvz. sustabdyti vardų sritį nuo kaitos), dirbtinai perduokite tuščią sąrašą:
use Module ();
Tai tolygu
BEGIN { require Module }
Jei VERSION argumentas yra tarp Module ir LIST, tada use
iškvies
VERSION metodą Module klasėje su duota versija kaip argumentu. Pagal nutylėjimą esantis VERSION metodas, paveldėtas iš UNIVERSAL klasės, praneša, jei duotoji versija didesnė nei kintamojo $Module::VERSION
reikšmė .
Vėlgi, yra skirtumas tarp LIST praleidimo (import
iškviestas be argumentų) ir dirbtinai tuščio LIST ()
(import
neiškviestas). Pažymėtina, kad nėra kablelio po VERSION!
Kadangi tai yra atviras interfeisas, pragmos (kompiliatoriaus direktyvos) yra taip realizuojamos tuo būdu. Einamuoju momenu realizuotos pragmos yra:
use constant;
use diagnostics;
use integer;
use sigtrap qw(SEGV BUS);
use strict qw(subs vars refs);
use subs qw(afunc blurfl);
use warnings qw(all);
use sort qw(stable _quicksort _mergesort);
Kai kurie pseudo-moduliai importuoja semantiką į einamąją bloko sritį (kaip kad strict
ar integer
, skirtingai nuo įprastų modulių, kurie importuoja simbolius į einamąjį paketą (kas efektyvu failo pabaigoje).
Yra atitinkama no
komanda, kuri neimportuoja reikšmių, importuotųuse
, t.y. ji iškviečia unimport Module LIST
vietoj import
.
no integer;
no strict 'refs';
no warnings;
Žr. perlmodlib sąrašui standartinių modulių ir pragmų. Žr. perlrun -M
ir -m
komandinės eilutės nurodymams perlui, kurie suteikia use
funkcionalumą iš komandinės eilutės.