salve,

Sono neofita di perl ma vagamente esperto di programmazione.
Ho il programma cleandict come segue.

codice:
#!/usr/local/bin/perl -w
#
# -- Script usato per pulire il dizionario preso da festival
# e renderlo un semplice lista di parole fonemi  f OO n e1 m i
#
# TODO 
# 	manca la maiuscola di  ... strano accento.
#
use feature "switch";
use Encode;
#use PerlIO::encoding;

#$srcdic="lessico_italiano_500K.dic";
#$dstdic="it-500kNorm.dic";

$srcdic="vocali.txt";
$dstdic="vocaliout.txt";

#encoding ISO-8859-1 is latin-1
open(SRCDIC, "<:encoding(iso-8859-1)", $srcdic) or die;
open(DSTDIC, ">:encoding(iso-8859-1)", $dstdic) or die;

$newline = encode("iso-8859-1", "\n");


$nlinee=0;
while ($linea = <SRCDIC>){
	
	$nlinee++;
	
	@lista = split(//, $linea);
	$got=0;
	$deep=0;

	for $i (@lista){
		#print "[INFO processing=\"".$i."\"| got=".$got." deep=".$deep."]\n";
		given ($i)
		{
			when (/["]/) {
				if( $got == 0){
					$got = 1
				}else{
					$got = 0;
					$tmp = encode("iso-8859-1", "         ");
					print DSTDIC $tmp;
				}
			}
			
			when ( /[(]/ ) {
				if ($deep == 3){
					$tmp = encode("iso-8859-1", " ");
					print DSTDIC $tmp;
				}
				$deep++;
			}
			
			when ( /[)]/ ) { $deep-- }

			when (/[ 1-9a-zA-Zèéìíùúàáòó]/){
				if($got || $deep > 3){
						$enc = encode("iso-8859-1", $i);
						print DSTDIC $enc;	
				}
			}
		}
	}

	print DSTDIC $newline;

}

close(SRCDIC);
close(DSTDIC);

print "processed ".$nlinee." parole\n";
devo trasformare vocali.txt:
("é" C (((e1) 1)))
("è" V-S1_IP (((E1) 1)))
("é" S-NS (((e1) 1)))
("ì" P-MS (((i1) 1)))
("ì" P-NP (((i1) 1)))
("ì" P-NS (((i1) 1)))
("ì" R-MP (((i1) 1)))
("ì" S-NN (((i1) 1)))
("í" C (((i1) 1)))
("ù" B (((u1) 1)))
("ù" S-NN (((u1) 1)))
("ú" C (((u1) 1)))
("à" C (((a1) 1)))
("á" C (((a1) 1)))
("ò" C (((O1) 1)))
("ó" C (((o1) 1)))

in vocaliout.txt:
é e1
è E1
é e1
ì i1
ì i1
ì i1
ì i1
ì i1
í i1
ù u1
ù u1
ú u1
à a1
á a1
ò O1
ó o1

con il programma allegato non riesco comunque ad ottenere un file in output di tipo latin1 (iso-8859-1) e tralaltro nemmeno la prima colonna di vocali.

in piu' lanciando sui due file il comando da shell (ubuntu 9.04)
codice:
file -i voca*
ottengo
codice:
vocaliout.txt: text/plain charset=us-ascii
vocali.txt:    text/plain charset=iso-8859-1
(NB il programma serve per dizionari piu grossi, ma questo e' l'esempio buggoso da risolvere).

Any ideas?
grazie