[英]Printing a Table from a Perl Data Structure
我有一個如下的Perl數據結構:
%hash = (
table_id => {
column_1_header =>
[
column_value_1,
column_value_2,
column_value_3
],
column_2_header =>
[
column_value_4,
column_value_5,
column_value_6,
column_value_7,
],
},
);
我的目標是用結構中概述的每個列生成一系列表。 例如:
<table id="table_id">
<tbody>
<tr>
<td>column_1_header</td>
<td>column_2_header</td>
</tr>
<tr>
<td>column_value_1</td>
<td>column_value_4</td>
</tr>
<tr>
<td>column_value_2</td>
<td>column_value_5</td>
</tr>
<tr>
<td>column_value_3</td>
<td>column_value_6</td>
</tr>
<tr>
<td></td>
<td>column_value_7</td>
</tr>
</tbody>
</table>
我正在使用Perl Dancer和模板工具包。 像這樣的表格有哪些選擇?
更改數據,以便按記錄而不是按列進行分組。
use Algorithm::Loops qw( MapCarU );
for my $table_id (keys(%hash)) {
my $table = $hash{$table_id};
my @headers = keys(%$table);
my @recs = ( \@headers, MapCarU(sub { [ @_ ] }, @{$table}{@headers} ) );
$hash{$table_id} = \@recs;
}
以上變化
%hash = (
table_id => {
col_1_header => [ val_1, val_2, val_3 ],
col_2_header => [ val_4, val_5, val_6, val_7 ],
},
);
至
%hash = (
table_id => [
[ col_1_header, col_2_header ],
[ val_1, val_4 ],
[ val_2, val_5 ],
[ val_3, val_6 ],
[ undef, val_7 ],
],
);
請注意,數據結構包含的信息不足,無法重新創建原始的列順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.