这是我的代码和输出我无法使用perl为每行创建不同的行?
这是我的代码:
;
我的PERL输出(I.E $ finalline) 桑卡尔 morien3
我得到了下表作为表格格式的输出:
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
预期产出:
UserName Access
sankar morien3 Read Write Owner
输入文件:(即as.txt)
UserName Access
sankar Read Write Owner
morien3 Read Write Owner
答案 0 :(得分:0)
您必须了解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