[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: