如何创建表使用perl的CGI我的Perl输出?(How to create table for m

2019-09-26 06:44发布


这里是我的代码和输出我无法创建不同的行我用perl每一行?

这里是我的代码:

   use strict;
    use warnings;
    use CGI;
    open(my $file1,"as.txt");
    my $firstline=<$file1>;
    $firstline=~s/.*=//g;
    my @words=split /,/,$firstline;
    my $finalline=join("\n",@words);
    close $file1;
    print "Content-type:text/html\n\n"
    print<<"EOF";
    <html><body>
    <table style="width:100%">
    <tr>
    <th>UserName</th>
    <th>Access</th>
    </tr>
    <tr>
    <td>$finalline</td>
    <td>
    <input type="checkbox" value="check2" mulitple checked>Read
    <input type="checkbox" value="check2" mulitple>Write
    <input type="checkbox" value="check2" mulitple>Owner
    </td>
    </tr>
    </table></body></html>
    EOF

我的输出为Perl(IE $ finalline)桑卡尔morien3

我下表得到了我的表格式输出:

UserName    Access
sankar morien3 Read Write Owner

预期输出:

UserName    Access
sankar  Read Write Owner
morien3 Read Write Owner

输入文件:(即as.txt)

cskTeam = sankar, mobrien3
[csk:/]

* = r
@cskTeam = rw

Answer 1:

你必须了解HTML布局将如何工作。

即使你的代码不会给在终端您预期的结果。

在HTML \n没有意义的, <br>它是在HTML新线。 但是,这个逻辑也不会在你的代码工作。

您正在使用加入阵列\n ,然后打印数据将执行一行注释行,你所提到的情况。

首先,你必须打印$finalline变量,因此它的结果是

sankar \n morien3  

的\ n不会在HTML考虑。 在一个单元中存储作为每<td>

然后,要创建持有该许可事由其他小区。

最后,你的代码应该如下。

#!/usr/bin/perl
use warnings;
use strict;
use CGI;

use CGI::Carp qw(fatalsToBrowser);

print "Content-Type: text/html \n\n";


open my $file1,"<","as.txt";
my $firstline=<$file1>;
$firstline=~s/.*=//g;
my @words=split /,/,$firstline;
close $file1;


print<<"EOF";
<html><body>
<table style="width:50%; ">
<tr>
<th style="text-align:left">UserName</th>
<th style="text-align:left">Access</th>
</tr>
EOF
foreach (@words)
{
print <<EOF;
<tr>
<td>$_</td>
<td>
<input type="checkbox" value="check2" mulitple checked>Read
<input type="checkbox" value="check2" mulitple>Write
<input type="checkbox" value="check2" mulitple>Owner
</td>
</tr>
EOF
}
print <<EOF;
</table></body></html>
EOF


文章来源: How to create table for my perl output using perl cgi?
标签: cgi