0

У меня есть многомерный хеш, который я пытаюсь распечатать в таблице. Я не могу получить право на реферирование/разглашение.Here Dereference в Template Toolkit

Я помещаю таблицу Excel в хэш, и я хочу распечатать соответствующие строки и столбцы в html и сопоставить строки/столбцы электронной таблицы (некоторые из которых пусты).

Я использую Perl Танцовщица и Template Toolkit. На стороне сервера хэш работает отлично. print $big_table{$column}{$row}; на стороне сервера, и он печатает правильный столбец и строку без проблем.

На стороне клиента должны быть столбцы 0, 1, 2.... Некоторые столбцы пусты, поэтому я не могу просто распечатать содержимое.

Теперь он печатает ARRAY (0x3e5389c). Я пробовал по-другому, и он напечатал HASH ...

Я знаю, что у меня есть некоторые проблемы с ссылкой/разыменованием. Любой совет приветствуется.

Server Side Код:

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>&nbsp<% big_table.0.keys %>&nbsp<TD>&nbsp<% big_table.1.keys %> 
&nbsp<TD>&nbsp<% big_table.2.keys %>&nbsp<TD>&nbsp<% big_table.3.keys %> 
&nbsp <TD>&nbsp<% big_table.4.keys %> 
&nbsp<TD>&nbsp<% big_table.5.keys %>&nbsp 

<% END %> 
</Table> 

Заранее спасибо!

+0

Изменено из хэша в массив. $ Big_table [$ col] [$ row] = $ cell-> value(); 'и заполняется второй массив со всеми строками # Клиент выглядит как <% FOREACH r IN row_numbers%> & NBSP <% big_table.0. $ Р%> & NBSP & NBSP <% big_table.1. $ Р%> ... <% END %> прекрасно работает, но это, наверное, с ума в-:(эффективна. Электронная таблица имеет длину 800 строк, поэтому это 2-й массив с 800 элементами, чтобы перебирать цикл «FOREACH». – user2875251

+0

Опубликуйте свои результаты как ответ и отметьте его принятым. – woolstar

+0

Неэффективен ?! Почему, по вашему мнению, менее эффективно перебирать более 800 индексов массивов, чем 800 хеш-ключей? – ikegami

ответ

0

Got it working.

Изменено для массива. '$ big_table [$ col] [$ row] = $ cell-> value();' и заполнил второй массив со всеми строками #.

Клиент выглядит

<% FOREACH r IN row_numbers %> 
<TR><TD> &nbsp <% big_table.0.$r %> &nbsp <TD> &nbsp <% big_table.1.$r %>... 
<% END %> 

прекрасно работает, но это, наверное, с ума в-эффективна :(. Таблица, длиной 800 строк, так что это второй массив с 800 элементами просто перебрать цикла «Foreach».

Смежные вопросы