[FLUG] [CODE] wordless.pl 0.2

  • From: Carlo Minucci <gecco@xxxxxxxxxxxx>
  • To: fanolug@xxxxxxxxxxxxx
  • Date: Mon, 30 Jun 2003 16:42:45 +0200

Mailing List del Fortunae LUG
=============================

tempo fa ho letto questo articolo http://www.wup.it/article.php/sid/4164 ho appreso che secondo delle statistiche la gente i oggi in media sa 650 parole, contro le 1500 di 25 anni fa, ora tralasciano i calcoli statistici, mi e` venuto in mente di misurare quante parole conosco io per cui ho scritto questo coso in perl per inserire in un database le parole (nella mia inserzione ho lasciato fuori i verbi [ che senno` uno lo coniuga in tutti i tempi possibili] gli articoli, le congiunzioni, i nomi propri e di citta`. quelle parole che a seconda del contesto assumono significati diversi le ho inserite una sola volta [ questo piu` per motivi legati a sql :) ] e ho messo anche le parole derivate da altre parole, ho lasciato fuori le parole straniere ormai italianizzate e non so cos`altro)
per funzionare ha bisogno, ovviamente, di un database, mysql, il mio database l`ho chiamato paroliere, la tabella, parole con una sola colonna chiamata parola che ha la chiave primaria o son una merda come si dice...
poi avete bisogno di due moduli DBD-mysql e DBI che li trovate su cpan.org
tanto poi questo coso dopo non lo prova nessuno quindi...
io cmq l`ho fatto, e fino adesso sono arrivato a 1400 parole


#!/usr/bin/perl
print "wordless 0.2\n by Carlo Minucci\n";
print "please report bugs at gecco\@napodano.com";
use DBI;
my $dbi = DBI->connect("DBI:mysql:database=paroliere;host=localhost", "USER", "PASSWORD");


sub contaparole
{
 my $conta = $dbi->prepare("SELECT COUNT(*) FROM parole");
 $conta->execute;
 while(my $ref=$conta->fetchrow_hashref())
 {
   print "ci sono $ref->{'COUNT(*)'} parole nel database\n";
 }
 $conta->finish();
}

sub inserisciparole
{
 while (1)
 {
   print "inserisci una parola : ";
   chomp($newword = <STDIN>);
   if ($newword)
   {
     my $query = $dbi->prepare("INSERT INTO parole VALUES(\"$newword\")");
     $query->execute;
     &contaparole;
     print "hai inserito $newword\n";
   }
   elsif(!$newword)
   {
     last;
   }
 }
}

sub cercaparola
{
print "inserisci la lettera iniziale, o le lettere iniziali della parola da cercare : ";
chomp($iniziale = <STDIN>);
my $cerca = $dbi->prepare("SELECT * FROM parole WHERE parola LIKE \"$iniziale%\"");
$cerca->execute;
print "risultato : \n";
while(my $ref=$cerca->fetchrow_hashref())
{
print "$ref->{'parola'} \n";
}
my $contacercate = $dbi->prepare("SELECT COUNT(*) FROM parole WHERE parola LIKE \"$iniziale%\"");
$contacercate->execute;
while(my $ref=$contacercate->fetchrow_hashref())
{
print "ci sono $ref->{'COUNT(*)'} parole che cominciano con $iniziale \n";
}
}


sub menu
{
 print "\n\nMENU\n";
 &contaparole;
 print "1 - inserisci parole\n";
 print "2 - cerca parole\n";
 print "q - quitta\n";
 chomp($scelta = <STDIN>);
 if($scelta eq "1")
 {
   &inserisciparole;
 }
 elsif($scelta eq "2")
 {
   &cercaparola;
 }
 elsif($scelta eq "q")
 {
   exit();
 }
 elsif($scelta !="1", OR $scelta !="2", OR $scelta !="3", OR $scelta !="q")
 {
   print "non valido\n";
 }
}

while(1)
{ &menu;
}
$dbi->disconnect;




--
"mhhh ciambelle, esiste qualcosa che non riescono a fare?"

Other related posts: