在我的HTML表格中获取不需要的额外列

时间:2014-11-20 03:50:38

标签: html perl cgi html-table

好吧,我正在尝试制作一个HTML表来显示我的系统上的finger命令的一些结果,但是我得到了一个空白空间的前导列,我无法弄清楚如何删除。这是我正在使用的代码。

#!/usr/bin/perl;
use Modern::Perl;
use CGI::Carp qw/fatalsToBrowser/;
use CGI qw/:standard *table *Tr/;

my @fingeroutput = `finger`;
my @info;
my @td;

foreach my $finger (@fingeroutput){
    $finger =~ /(\w+)\s+(\w*\s\w*)\s+(\w+\/\d+)\s+(\d*d*:*\d*)\s+(\w+\s\d+\s\d+:\d+)\s(.+)/;
        push (@info, ("$1", "$2", "$4", "$6") );
}

while (my @data = splice @info, 0, 4 ) {
    push @td, td( \@data );
}

print header(), start_html(-title=>'Basic Stuff');

print start_table({-border=>2, width=>"50%"});

print th([ 'Login', 'Name', 'Idle', 'Host']);
foreach my $row ( @td ) {
    print start_Tr;
    print td ( $row );
    print end_Tr;
}

print end_table;

print end_html();

我遇到的第一个问题是当表打印出来时,第一行总是一行空格。

我的第二个问题是登录列出现所有空白区域,并且所有数据都向右移动了一个单元格,而我的主机部分位于没有标题的列中。

这是我第一次使用CGI和HTML表格,所以我做了很多研究来达到这一点。唯一剩下的就是让表格格式正确。我做错了什么?

1 个答案:

答案 0 :(得分:0)

第二个问题原来是在这段代码中:

while (my @data = splice @info, 0, 4 ) {
    push @td, td( \@data );
}

将其更改为:

while (my @data = splice @info, 0, 4 ) {
    push @td, ( \@data );
}

我摆脱了额外的领先专栏。我仍然无法弄清楚为什么我要开始一桌空行。

我快速修复了添加

shift @td;

如果有人能够看到为什么我在第一时间获得那个有用的空行。是因为我从一开始就使用推送将数据输入阵列吗?