indietro

  • read FILEHANDLE,SCALARE,LUNGHEZZA,SCOSTAMENTO
  • read FILEHANDLE,SCALARE,LUNGHEZZA

    Tenta di leggere LUNGHEZZA caratteri di dati nella variabile SCALARE dal FILEHANDLE specificato. Restituisce il numero di caratteri che sono stati letti, 0 alla fine del file, o il valore indefinito se si è verificato un errore (in quest'ultimo caso, viene anche impostata $!). La lunghezza di SCALARE sarà aumentata o diminuita in maniera che l'ultimo carattere effettivamente letto sia l'ultimo carattere dello scalare dopo la lettura.

    Può essere indicato uno SCOSTAMENTO per posizionare i dati letti in qualche altro posto in SCALARE piuttosto che all'inizio. Un OFFSET negativo indica la posizione specificata da tanti caratteri quanti quelli specificati, contando all'indietro a partire dalla fine della stringa. Un OFFSET maggiore della lunghezza di SCALAR fa sì che la stringa sia completata con dei byte "\0" fino alla lunghezza richiesta, prima che il risultato della read venga aggiunto in coda.

    La chiamata è effettivamente implementata in termini di chiamata a fread(), del Perl o del sistema operativo. Per una vera chiamata di sistema read(2), si veda sysread.

    Notate i caratteri: a seconda dello stato del filehandle, possono essere letti byte (8-bit) o caratteri. Di default tutti i filehandle operano su byte, ma se ad esempio il filehandle è stato aperto con il layer di I/O :utf8 (si veda open e la direttiva open, open), le operazioni di I/O opereranno su caratteri, non su byte. In maniera analoga per la direttiva :encoding: in quel caso può essere letto pressoché qualsiasi carattere.