如何将引用与Perl6::Form一起使用?
我正在尝试使用打印表格数据,但不确定如何从哈希引用输出数据。以下是我迄今为止所做的尝试:如何将引用与Perl6::Form一起使用?,perl,reference,Perl,Reference,我正在尝试使用打印表格数据,但不确定如何从哈希引用输出数据。以下是我迄今为止所做的尝试: #!/usr/bin/perl use Perl6::Form; my @alerts; push @alerts, { site => "192.168.0.1", status => "200", id => "QWE" }; push @alerts, { site => "192.168.0.2", status => "500", id => "QER"
#!/usr/bin/perl
use Perl6::Form;
my @alerts;
push @alerts, { site => "192.168.0.1", status => "200", id => "QWE" };
push @alerts, { site => "192.168.0.2", status => "500", id => "QER" };
print form
' ====================================== ',
'| ID | SITE | STATUS |',
'|-------------+------------+-----------|',
'| {[[[[[[[[[} |{[[[[[[[[[} | {>>>>>>>} |',
\@alerts{id}, \@alerts{site},\@alerts{status},
' ====================================== ';
您需要并行阵列
my @ids = map { $_->{id} } @alerts;
my @sites = map { $_->{site} } @alerts;
my @statuses = map { $_->{status} } @alerts;
print
form
'+=======================================+',
'| ID | SITE | STATUS |',
'|-------------+-------------+-----------|',
'| {[[[[[[[[[} | {[[[[[[[[[} | {>>>>>>>} |',
\@ids, \@sites, \@statuses,
'+=======================================+';
我们可以消除代码重复
my %dbf; # Data by field
for my $field (qw( id site status )) {
$dbf{$field} = [ map { $_->{$field} } @alerts ];
}
print
form
'+=======================================+',
'| ID | SITE | STATUS |',
'|-------------+-------------+-----------|',
'| {[[[[[[[[[} | {[[[[[[[[[} | {>>>>>>>} |',
$dbf{id}, $dbf{site}, $dbf{status},
'+=======================================+';
例如:
$alerts[0]->{site}
它应该给出“192.168.0.1”
我想使用表单包,并打印所有条目,[。老实说,我不确定这样做是否可行。@Gregory Nisbet,这是一个Perl 5问题。Perl6::Form是Perl 5的一个模块(提供类似于Perl 6的表单)。