#!/usr/bin/perl -w -s use POSIX qw(locale_h); setlocale(&POSIX::LC_ALL, "pt_PT") or warn("erro $!"); use locale; my $tmp = ".$$.tmp"; our($debug); open(A,"|jspell -d port -e > $tmp-1"); open(B,"|jspell -d port -e > $tmp-2"); while(<>){ if(/(.*?)\/(.*?)\/(.*)/){ my @lista = split(/,/,$3); $temp = shift @lista; $temp =~ s/^\s+|\s+$//; print A "$1/$2\n"; print B "$temp/$2\n"; } } close(A); close(B); #aqui acabava o z open(A,"$tmp-1"); open(B,">$tmp-11"); while(){ s/ /\n/; s/=.*?\)/\n/g; s/, //g; print B $_ } close A; close B; open(A,"$tmp-2"); open(B,">$tmp-22"); while(){ s/ /\n/; s/=.*?\)/\n/g; s/, //g; print B $_ } close A; close B; unlink "$tmp-1", "$tmp-2" unless $debug; #aqui acabava o z2 open(A,"$tmp-22"); open(B,">$tmp-222"); while(){ s/,.*$//g; print B $_; } #aqui acabava o z3 qx{paste $tmp-11 $tmp-222 | sort -u | sed -e 's/\\s\\+/;/g' > $tmp-3}; # retirar palavras iguais open(C,"$tmp-3"); open(D,">hash"); while(){ /^(.*);(.*)$/; print D unless $1 eq $2; } unlink "$tmp-11", "$tmp-22", "$tmp-222", "$tmp-3" unless $debug;