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



 


indietro

[14] Come posso stampare un sommario in base alla frequenza delle parole oppure delle linee?

Per fare questo, dovete analizzare sintatticamente ogni parola nel flusso di input. Faremo finta che per parola intendiate un gruppo di caratteri alfabetici, trattini o apostrofi, piuttosto che l'idea di parola senza spazi, data nel quesito precedente:

    while (<>) {
        while ( /(\b[^\W_\d][\w'-]+\b)/g ) {   # non prende "`pecora'"
            $visti{$1}++;
        }
    }
    while ( ($parola, $conta) = each %visti ) {
        print "$conta $parola\n";
    }

Se volete fare la stessa cosa per le linee, non dovreste aver bisogno di un'espressione regolare:

    while (<>) {
        $visti{$_}++;
    }
    while ( ($linea, $conta) = each %visti ) {
        print "$conta $linea";
    }

Se volete che l'output sia ordinato, consultate perlfaq4: "Come si ordina un hash (opzionalmente per valore invece che per chiave)?"

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