sysseek FILEHANDLE,POSITION,WHENCE
Nustato FILEHANDLE sisteminę poziciją baitais, naudojant sisteminį kreipinį lseek(2). FILEHANDLE gali būti išsireiškimas, kurio reikšmė duoda filehandle'o pavadinimą. WHENCE reikšmės yra 0
nustatant naują poziciją į POSITION, 1
nustatant poziciją į dabartinė plius POSITION ir 2
nustatant jį į EOF plius POSITION (dažniausiai neigiama).
Pažymėtina, jog tai yra baitais: net jei filehandle'as buvo nustatyta dirbi su simboliais (pvz. naudojant
:utf8
I/O layer), tell() gražins baitų, ne simbolių postūmį (nes įgyvendinant pastarąjį variantą, sysseek() veikimas taptų labai lėtas).
sysseek() apiena normalų užbuferintą IO, taigi sumaišydamas jį su kitais nuskaitymais, kitais nei sysread
, pvz. >< ar read()) print
, write
, seek
, tell
, ar eof
gali įvesti painiavą.
Aprašant WHENCE galima naudoti konstantas SEEK_SET
,
SEEK_CUR
ir SEEK_END
(failo pradžia, dabartinė pozicija, failo pabaiga) iš Fcntl modulio. Konstantų panaudojimas taip pat labiau pasiduoda pernešimui (portable) nei pasitikėjimas 0, 1 ir č. Pvz. "systell funkcijos aprašymui:
use Fcntl 'SEEK_CUR';
sub systell { sysseek($_[0], 0, SEEK_CUR) }
Gražina naują poziciją arna nesėkmės atveju neapibrėžtą reikšmę. Nulinė pozicija gražinama kaip string'as "0 but true"
; tad sysseek
gražina true sėkmės atveju ir false - nesėkmės, bet vis dar įmanoma lengvai nustatyti naują poziciją.