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



 


indietro

[37] Come posso prendere una riga a caso da un file? file, prendere una riga a caso

Ecco un algoritmo tratto dal Camel Book:

        srand;
        rand($.) < 1 && ($line = $_) while <>;

Ciò ha un significativo vantaggio in termini di spazio rispetto alla lettura in memoria dell'intero file. Potete trovare una dimostrazione di questo metodo su The Art of Computer Programming, Volume 2, Sezione 3.4.2, di Donald E. Knuth.

Potete usare anche il modulo File::Random che fornisce una funzione per quell'algoritmo:

	use File::Random qw/random_line/;
	my $linea = random_line($nomefile);

Un altro modo è quello di usare il modulo Tie::File che tratta l'intero file come un array. Accedete semplicemente in maniera casuale ad un elemento dell'array.

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