我有一个多维哈希,我正试图在表格中打印出来。我无法正确引用/解除引用。
我正在将一个excel电子表格放入哈希中,我想在html中打印出相应的行和列,并匹配电子表格的行/列(其中一些是空的)。
我正在使用 Perl Dancer 和模板工具包。在服务器端,哈希工作正常。服务器端print $big_table{$column}{$row};
,它打印正确的列和行,没有问题。
在客户端,0, 1, 2...
应该是列。有些列是空白的,所以我不能只打印内容。
它现在的方式是打印ARRAY(0x3e5389c)。我尝试了另一种方式,它打印HASH ......
我知道我有一些参考/解引用问题。欢迎任何建议。
服务器端代码:
my %big_table = ();
# $cell->value() is the text ripped from the excel cell at that location
$big_table{$column}{$row} = $cell->value();
template 'index', { big_table => \%big_table };
客户端:
<Table border="3">
<% FOREACH n IN big_table.0 %>
<TR><TD> <% big_table.0.keys %> <TD> <% big_table.1.keys %>
 <TD> <% big_table.2.keys %> <TD> <% big_table.3.keys %>
  <TD> <% big_table.4.keys %>
 <TD> <% big_table.5.keys %> 
<% END %>
</Table>
提前致谢!
答案 0 :(得分:0)
搞定了。
更改为数组。 '$ big_table [$ col] [$ row] = $ cell-&gt; value();'并使用所有行#'填充第二个数组。
客户端看起来像
<% FOREACH r IN row_numbers %>
<TR><TD>   <% big_table.0.$r %>   <TD>   <% big_table.1.$r %>...
<% END %>
效果很好,但它可能很疯狂:(。电子表格长达800行,因此它是第二个包含800个元素的数组,只是为了迭代'FOREACH'循环。