save(/home/jj/ftt2004-ex1) mail(jj@di.uminho.pt) cginame(/home/jj/public_html/bin/ftt2004-ex1) formtitle(Submissão do exame prático de ftt - 1) uploaddir(/home/jj/LEA/FTT2004/EX1) feedback(d) inv(um) { *nome ; *numero:int ; q1_xml (q1 bt.xml) : file; q1_xdt (q1 bt.xdt) : file; q2_align (q2 align.txt) : file; q3_pt (q3 pt.html) : file; q3_tm (q3 memoriaT.txt) : file; q4_pt (q4 pt.html): file; q4_tm (q4 memoriaT.txt): file } ## sub um{ my $p = shift; return ""; if( $p->{html1}||$p->{html2}||$p->{tm}){""} else {"Ao menos uma solução..."} } sub any2id{ my $i=shift; my $r=""; if(ref($i) eq "HASH" ) { for(keys %$i){$r .= "$_" . "-" . any2id($i->{$_}.".") } } elsif(ref($i) eq "ARRAY" ){ for(@$i){$r .= any2id($_)."." } } else{ $r = $i } $r =~ s/[ \(\)\[\]\{\}]+/_/g; $r =~ y(áéíóúâêîôûãõç)(aeiouaeiouaoc); "$r" } sub d{ my $p = shift; my $r = ""; my $dir = "/home/jj/LEA/FTT2004/EX1/".any2id($p->{numero}); mkdir($dir); print $dir; for("q1_xml","q1_xdt", "q2_align", "q3_pt","q3_tm","q4_pt" ,"q4_tm"){ next unless $p->{$_}; system("cp \"$p->{$_}{file}\" \"$dir/$p->{$_}{name}\" ") } $r .= "Submissão de $p->{ident}[0]{nome} recebida com sucesso\n" . pre(Dumper($p)) . hr; $r } ##