-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[29] Perché il mio script non riesce a leggere da STDIN dopo che gli ho dato EOF (^D su Unix, ^Z su MS-DOS)?

Alcune librerie stdio impostano un flag eof (fine del file) che ha bisogno di essere azzerato. Il modulo POSIX definisce clearerr() che può essere utilizzato. Questo è tecnicamente il modo corretto per farlo. Ci sono però altre scapaptoie meno affidabili:

  1. Tentare di memorizzare il puntatore della posizione nel file e poi spostarsi su di esso, come ad esempio:

        $dove = tell(LOG);
        seek(LOG, $dove, 0);
  2. Se questo non funziona, provare a spostarsi in una parte diversa del file e poi di nuovo alla posizione memorizzata.

  3. Se questo non funziona, provare a spostarsi in una parte diversa del file, leggere qualcosa, e poi spostarsi di nuovo alla posizione memorizzata.

  4. Se questo non funziona, lasciar perdere la libreria stdio e utilizzare sysread.

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google