_  _   ,_
/^\/^\-/ @D
~(________/ PERL.LT
|L |L
L L
Straipsniai  Funkcijos 
Funkcijos/syswrite - fiksuoto ilgio nebuferintas išvedimas į filehandle'ą
  • syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET
  • syswrite FILEHANDLE,SCALAR,LENGTH
  • syswrite FILEHANDLE,SCALAR

    Mėgina įrašyti LENGTH duomenų baitų iš kintamojo SCALAR į aprašyta FILEHANDLE, naudojant sisteminį kreipinį write(2). Jei LENGTH nenurodomas, įrašo visa SCALAR. Praleidžia užbufreinta IO, taigi sumaišydamas jį su kitomis nuskaitymo rūšimis, print, write, seek, tell, ar eof gali įvesti painiava, nes perlio ar stdio layers'ai įprastai buferina duomenis. Gražina įrašytų baitų skaicių arba esant klaidai - undef. (Šiuo atveju errno kintamasis $! taip pat nustatomas). Jei LENGTH ilgesnis nei yra duomenų SCALAR po OFFSET, tik tiek duomenų, kiek pasiekiama, bus įrašyta.

    OFFSET gali būti pasakoma rašyti duomenis iš kokios nors eilutės dalies (nebūtinai pradžios). Neigiamas OFFSET nusako rašyma per tiek simbolių skaiciuojant atbulai nuo string'o pabaigos. Jei SCALAR yra tušcias, galima naudoti OFFSET, bet tik nulinį.

    Pažymėtina, jog filehandle'as buvo aprašyta kaip :utf8 , Unicode simboliai įrašomi vietoj baitų (LENGTH, OFFSET, ir gražinamos syswrite() reikšmės yra UTF-8 užšifruotų Unicode simboliai). :encoding(...) lygmuo (layer) netiesiogiai nurodo į :utf8 lygmenį. Daugiau apie tai binmode, open, ir open pragma, open.

algirdas@perl.lt 2005.04.11 - $dabar