html调用perl子例程并从子例程返回值以显示在html中

时间:2014-04-19 21:27:54

标签: perl

这是我的HTML代码

<html>
<title>Results</title>
<body><h1> Here are your results</h1>

<p>Please click the Button to see your result run by Ravi's team.</p>
<form action='index.pl' method='post'>
<input type='submit' value='submit'>
</form>
</body>
</html>

和index.pl是我的perl,我的子程序如下。

sub my_result{

    my $run;
    my $dir="/kbio/sraja/BenzoExposedDataSet/database/Output";
    my $parsebphtml = "/parse_bphtml.pl";
    my $olgacsvfile = "/database/Output/sample.csv";
    my @bp=<$dir/*.bp>;

    $run ="perl $parsebphtml > $olgacsvfile";
       # print "$com\n";
    system($run)==0 or  my_err("Could not run $run\n");
    #printing the table
    open(F,"$olgacsvfile") or my_err("Could not open the csv ($olgacsvfile) file");
       print "<h2> Average Results </h2>";
       print  "<table border=1>";
       while(my $line=<F>){
          print "<tr>";
          my @cells= split ',',$line;
          foreach my $cell (@cells)
          {
                print "<td colspan=1>$cell</td>";
          }
          print "</tr>";

       }
       print "</table>";

}

如您所见,表格是我需要返回到results.html的内容 任何帮助都会非常明显。

谢谢。 GEET

1 个答案:

答案 0 :(得分:1)

我不知道你想做多少工作但是,如果你想保持简单,试试HTML::Template模块。这是一个简单的用法示例。

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset=utf-8>
        <title>A random page</title>
    </head>
    <body>
        <TMPL_VAR NAME=page_content> 
    </body>
</html>

我的perl代码包含这样的内容。更好的是,请查看http://metacpan.org/pod/HTML::Template上的文档。

use HTML::Template;

sub my_result {
   return $html_string;
}

my $master_template = HTML::Template->new(filename => "Path to html template file");
$master_template->param('page_content' => my_result());

根据您计划采用的程度,我建议您使用更高级的模板系统,例如mojolicious框架(http://mojolicio.us/perldoc/Mojo/Template)使用的模板系统。

干杯, MrMcKizzle