Как создать простую таблицу HTML с гиперссылками из хэша в Perl? - PullRequest
2 голосов
/ 21 сентября 2010

У меня есть Perl-хэш "людей", подобный этому:

my $data = {
    124535 => {
        NAME     => "abe",
        AGE      => 100,
        SEX      => "m",
        HOMEPAGE => qw (http://abe.knaan.old)
    },
    54478 => {
        NAME     => "joe",
        AGE      => 18,
        SEX      => "m",
        HOMEPAGE => qw (http://slappy.joe.com)
    },
    54478 => {
        NAME     => "jane",
        AGE      => 20,
        SEX      => "f",
        HOMEPAGE => qw (http://i.am.jane/jane.html)
    },
};

Я хотел бы напечатать HTML-страницу с таблицей всех людей, по одной строке на человека, со всеми данными, включаяхэш-ключ (то есть 5 столбцов), включая гиперссылки на его домашнюю страницу.

Я могу написать длинный кусок уродливого кода, который печатает все заголовки HTML и т. д., но есть ли более хороший и понятный способ сделать это?Возможно, использовать некоторые модули для этого, я полагаю, довольно популярного задания?

Я нашел HTML :: QuickTable , но я не уверен, как преобразовать мою структуру в подходящую.

1 Ответ

3 голосов
/ 21 сентября 2010

Это должно сделать это:

my @names = qw(NAME AGE SEX HOMEPAGE);
my @data  = [@names, 'KEY'];

for my $k (keys %$data) {
    my @t = @{$data->{$k}}{@names};
    $t[-1] = qq{<a href="$t[-1]">$t[-1]</a>};        
    push @data, [@t, $k]
}        

use HTML::QuickTable;
my $qt = HTML::QuickTable->new(... labels => 1); 
print $qt->render(\@data); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...