#!/usr/bin/perl -Tw use strict; use CGI; # $formulari ens permetra obtenir les dades my $formulari = new CGI; # copiem les dades associades al id text1linia # esto es para poner el motivo my $longitudmotivo = $formulari->param("longitudmotivo"); # copiem les dades associades al id textnlinies # esto es para las secuencias my $secuencias = $formulari->param("secuencias"); # aixo ha d'anar per raons de seguretat, si no ho fiqueu, no us funcionara delete(@ENV{qw{IFS PATH ENV BASH_ENV}}); # aixo ens permet restringir el tamany dels fitxer que podem rebre fins a 512K $CGI::POST_MAX=524288; # mostrem la capsalera de la pagina HTML print "Content-type: text/html\n\n"; print "Search motifs with EM algorithm\n"; # mostrem el cos print "\n"; print "

The motif found is:

\n\n"; # obrim un fitxer on escriure el contingut del # fitxer que ens han enviat if (!open(FH,"> /tmp/apache/secuencias.txt")) { print "

Not Sequence\n"; } if (!open(FH,"> /tmp/apache/longitudmotivo.txt")) { print "

Not Motif length\n"; } # ara cridem al programa 'wc' amb el nom del fitxer # creat com a parametre, i enregistrem la sortida # a la variable $sortidawc, que la initizalitzem # amb el valor "sense sortida" per si hi ha algun # problema i wc no torna res. a la variable $arg # fiquem l'argument del programa que es el nom del # fitxer del que wc compta linies # l'execucio es du a terme amb la funcio open de # la forma en que esta aqui especificada print FH ($secuencias); close(FH); print FH ($longitudmotivo); close(FH); my $output = "There is nothing"; my $arg2 = "/tmp/apache/secuencias.txt.$$"; my $arg = "/tmp/apache/longitudmotivo.txt.$$"; print "

The motif found in your sequences is: "; if (open(FH,"-|","programa.pl",$arg,$arg2)) { while (){ print "$_\n"; } #$output = ; # llegim del filehandle FH la sortida del programa } close(FH); # print "\n$output\n"; #tanquem el cos i el fitxer HTML print "\n\n"; # esborrem el fitxer creat temporalment unlink("/tmp/apache/secuencias.txt.$$"); unlink("/tmp/apache/longitudmotivo.txt.$$");