perl编写html文件,如何建立从Perl中的CSV文件的HTML下拉菜单?

请注意,您的return说法是有问题的:这两个数组都将展开到一个和调用代码将无法返回值分配给两个独立的数组。如果你想保持这个接口的精神,你应该返回对这些数组的引用。见perldoc perlsub:

甲return语句可用于退出子程序,根据子程序调用的上下文中选择指定所返回的值,这将在适当的上下文进行评估(表,标量,或空隙) 。 ......如果你返回一个或多个聚集(数组和哈希),这些将一起展开到一个大的区分清单。

使用split因为电脑我上既没有Text::CSV也不Text::xSV]打字。现在

#!/usr/bin/perl

use strict; use warnings;

my (@header) = map { chomp; split /,/} scalar ;

while (my $line = ) {

last unless $line =~ /\S/;

chomp $line;

my (@values) = split /,/, $line;

print "\n";

for (my $i = 1; $i < @header; $i += 1) {

printf qq{%s = %s\n},

$header[$i], $values[$i], $header[$i], $values[$i];

}

print "\n";

}

__DATA__

Time,h1,h2,h3

00:00:00,n1,n2,n3

,如果我是这样做的事情,我会分开,我读出的数据的部分和我产生并使用后者的模板为基础的方法。这里有一个例子:

#!/usr/bin/perl

use strict; use warnings;

use HTML::Template;

use List::AllUtils qw(each_arrayref);

my $select_html = <

value=""> =

EO_HTML

my @headers = qw(h1 h2 h3);

# Stand-in for rows you read from the CSV file

my @values = ([qw(a1 a2 a3)], [qw(b1 b2 b3)]);

print make_select(\$select_html, \@headers, $_)->output for @values;

sub make_select {

my ($html, $headers, $values) = @_;

my $tmpl = HTML::Template->new(scalarref => $html);

my @options;

my $it = each_arrayref($headers, $values);

while (my ($h, $v) = $it->()) {

push @options, { HEADER => $h, VALUE => $v };

}

$tmpl->param(OPTIONS => \@options);

return $tmpl;

}

输出:

value="a1">h1 = a1

value="a2">h2 = a2

value="a3">h3 = a3

value="b1">h1 = b1

value="b2">h2 = b2

value="b3">h3 = b3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值