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



 


Funzioni Perl in italiano

indietro

  • eof FILEHANDLE Xfine-del-file>
  • eof ()
  • eof

    Restituisce 1 se la successiva lettura su FILEHANDLE restituirà la fine del file oppure se FILEHANLDE non è aperto. FILEHANDLE può essere un'espressione il cui valore restituisce il filehandle effettivo. (Va notato che questa funzione legge realmente un carattere e poi esegue una ungetc su di esso, dunque ciò non è molto utile in un contesto interattivo). Non leggete da un file di terminale (oppure non chiamate eof(FILEHANDLE) su di esso) dopo che si è raggiunta la fine-del-file. Se lo fate, i tipi di file quali i terminali potrebbero perdere la condizione di file-del-file.

    Un eof senza un argomento utilizza l'ultimo file letto. L'uso di eof() con parentesi vuote, è molto differente. Si riferisce allo pseudo file formato dai file elencati sulla linea di comando e acceduti attraverso l'operatore <>. Poiché <> non è esplicitamente aperto come lo è un normale filehandle, un eof() prima che venga usato un <> farà sì che venga esaminato @ARGV per determinare se sia disponibile l'input. In maniera analoga, un eof() dopo che <> abbia restituito fine-del-file, presupporrà che stiate elaborando un'altra lista di @ARGV, e se non avete impostato @ARGV, esso leggerà l'input da STDIN; consultate perlop/"I/O Operators" ["Operatori di I/O", NdT].

    In un ciclo while (<)>, eof o eof(ARGV) possono essere usati per determinare la fine di ogni file, eof() determinerà solo la file dell'ultimo file. Esempi:

        # ripristina la numerazione di linea su ogni file di input
        while (<>) {
            next if /^\s*#/;        # tralascia i commenti
            print "$.\t$_";
        } continue {
            close ARGV  if eof;     # Non eof()!
        }
        # inserisce delle lineette appena prima dell'ultima linea dell'ultimo file
        while (<>) {
            if (eof()) {		# controlla la fine dell'utimo file
                print "--------------\n";
    	}
    	print;
    	last if eof();          # necessario se stiamo leggendo da terminale
        }

    Suggerimento pratico: in Perl non si ha quasi mai la necessità di usare eof visto che gli operatori di input restituiscono tipicamente undef quando esauriscono i dati o se c'è stato un errore.

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