【问题标题】:Getting an unwanted extra column in my HTML table在我的 HTML 表中获取不需要的额外列
【发布时间】:2015-01-17 19:56:54
【问题描述】:

好的,我正在尝试制作一个 HTML 表格来显示我系统上的手指命令的一些结果,但是我得到了一个空白空间的前导列,我不知道如何删除它。这是我正在使用的代码。

#!/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 表格,所以我做了很多研究来达到这一点。唯一剩下的就是让表格格式正确。我做错了什么?

【问题讨论】:

    标签: html perl cgi html-table


    【解决方案1】:

    第二个问题竟然出在这段代码中:

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

    通过将其更改为:

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

    我去掉了多余的前导列。我还没有弄清楚为什么我的表格开始出现空白行。

    我做了快速修复添加一个

    shift @td;
    

    如果有人能明白我为什么首先得到那个空白行,那将会很有帮助。是因为我从一开始就使用推送将数据放入数组吗?

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 2021-08-27
      相关资源
      最近更新 更多