indietro

  • syswrite FILEHANDLE,SCALARE,LUNGHEZZA,SCOSTAMENTO
  • syswrite FILEHANDLE,SCALARE,LUNGHEZZA
  • syswrite FILEHANDLE,SCALARE

    Tenta di scrivere un numero di caratteri di informazioni, pari a LUNGHEZZA, dalla variabile SCALARE al FIELHANDLE specificato, usando la chiamata di sistema write(2). Se LUNGHEZZA non è specificata, scrive l'intero SCALARE. Elude l'IO con buffer, dunque mescolarla con i vari read (oltre a sysread()), print, write, seek, tell o eof, potrebbe causare confusione visto che lo stdio di solito utilizza un buffer per i dati. Restituisce il numero di caratteri effettivamente scritti oppure undef se c'è stato un errore (in questo caso viene anche impostata la variabile errno $!). Se la LUNGHEZZA è più grande dei dati disponibili nello scalare dopo lo SCOSTAMENTO, verrà scritto solo il maggior numero di dati disponibili.

    Uno SCOSTAMENTO può essere specificato per scrivere i dati a partire da qualche parte della stringa che non sia l'inizio. Uno SCOSTAMENTO negativo specifica la scrittura di quel numero di caratteri, contando a ritroso a partire dalla fine della stringa. Nel caso lo SCALARE sia vuoto, si può usare SCOSTAMENTO ma solo uno scostamento pari a zero.

    Va notato che se il filehandle è stato marcato come :utf8, verranno scritti caratteri Unicode invece di byte (la LUNGHEZZA, lo SCOSTAMENTO e il valore restituito di syswrite() sono in caratteri Unicode codificati UTF-8). Lo strato :encoding(...) introduce implicitamente lo strato :utf8. Consultate binmode, open e la direttiva di open, open.