Legge dal filehandle il cui typeglob è contenuto in ESPR.
In contesto scalare, ogni chiamata legge e restituisce la prossima
linea, fino a quando la fine del file non viene raggiunta,
dopodiché le chiamate successive restituiscono il valore
indefinito. In contesto lista, legge il file fino alla fine e
restituisce una lista di linee. Va notato che la nozione di "linea"
dipende da ciò che è stato definito con $/ o
$INPUT_RECORD_SEPARATOR [record separatore di input, NdT].
Si veda perlvar/"$/".
Quando $/ è stato impostato a undef, e readline() viene
chiamato in contesto scalare (ossia in slurp mode [modalità
slurp, NdT]) e se il file è vuoto, restituisce ''
la prima volta, e undef le volte successive.
Questa è la funzione utilizzata internamente
dall'implementazione dell'operatore <ESPR>, ma può
essere usata direttamente. L'operatore <ESPR> viene discusso
in dettaglio in perlop/"I/O Operators" ["Operatori di I/O", NdT].
$line = <STDIN>;
$line = readline(*STDIN); # stessa cosa
Se readline incontra un errore del sistema operativo, $! verrà
impostato con il messaggio d'errore corrispondente. Può essere
utile controllare $! quando state leggendo dai filehandle di cui non
vi fidate, come tty, oppure un socket. Il seguente esempio usa
readline in forma di operatore, e svolge i passi necessari ad
assicurarsi che readline sia andato a buon fine.
for (;;) {
undef $!;
unless (defined( $linea = <> )) {
die $! if $!;
last; # raggiunto EOF
}
# ...
}