tie
VARIABLE,CLASSNAME,LIST
Ši funkcija pririša kintąmąjį prie paketo klasės, kuris leis realizuoti kintamąjį. VARIABLE yra kintamojo vardas, kuriuo jis bus iškviečiamas. CLASSNAME yra klasės, realizuojančios teisingo tipo objektus, vardas. Bet kokie papildomi argumentai yra perduodami new
klasės metodui (t.y. TIESCALAR
, TIEHANDLE
, TIEARRAY
ar TIEHASH
). Paprastai tai yra argumentai, kurie gali būti perduodami dbm_open()
C funkcijai. Objektas, gražintas new
metodo taip pat gražinamas
tie
funkcijos, kuri galėtų būti naudinga, norint prieiti prie kitų CLASSNAME metodų.
Įsidėmėkite, kad funkcijos kaip kad keys
ir values
gali gražinti milžinišką sąrašą, kai panaudotos dideliems objektams, kaip kad DBM failai. Jums gali labiau norėtis naudoti each
funkcija, atlikti iteraciją per tokius objektus. Pavyzdys:
# print out history file offsets
use NDBM_File;
tie(%HIST, 'NDBM_File', '/usr/lib/news/history', 1, 0);
while (($key,$val) = each %HIST) {
print $key, ' = ', unpack('L',$val), "\n";
}
untie(%HIST);
Klasė, realizuojanti hash'ą, turėtų turėti tokius metodus:
TIEHASH classname, LIST
FETCH this, key
STORE this, key, value
DELETE this, key
CLEAR this
EXISTS this, key
FIRSTKEY this
NEXTKEY this, lastkey
SCALAR this
DESTROY this
UNTIE this
Klasė, realizuojanti eilinį masyvą, turėtų turėti tokius metodus:
TIEARRAY classname, LIST
FETCH this, key
STORE this, key, value
FETCHSIZE this
STORESIZE this, count
CLEAR this
PUSH this, LIST
POP this
SHIFT this
UNSHIFT this, LIST
SPLICE this, offset, length, LIST
EXTEND this, count
DESTROY this
UNTIE this
Klasė, realizuojanti failo valdiklį, turėtų turėti tokius metodus:
TIEHANDLE classname, LIST
READ this, scalar, length, offset
READLINE this
GETC this
WRITE this, scalar, length, offset
PRINT this, LIST
PRINTF this, format, LIST
BINMODE this
EOF this
FILENO this
SEEK this, position, whence
TELL this
OPEN this, mode, LIST
CLOSE this
DESTROY this
UNTIE this
Klasė, realizuojanti skaliarą, turėtų turėti tokius metodus:
TIESCALAR classname, LIST
FETCH this,
STORE this, value
DESTROY this
UNTIE this
Ne visi metodai, parodyti viršuj privalo būti realizuoti. Žr. perltie, Tie::Hash, Tie::Array, Tie::Scalar ir Tie::Handle.
Skirtingai nuo dbmopen
,
tie
funkcija nenaudos ir nereikalaus modulio - reikės pačiam rankiškai susivokti ir juo pateikti. Žr. DB_File arba
Config modulį įdomiems tie
realizavimams.
Dėl tolimesnių detalių žr. perltie, tied
VARIABLE.