【发布时间】:2013-01-04 03:15:29
【问题描述】:
我有一个类似于
的哈希 $hash{$kayA}{$keyB}{val=>$value};
我需要将它放入一个 html 表中,其中包含 $keyA 的 TD 需要基于 $keyB 处的键数的行跨度
所以输出可能看起来像
<html>
<body>
<table border='1'>
<tr><th colspan='2' >Col A</th><th>Col B</th><th>Value</th></tr>
<tr>
<td rowspan='2'><input name='myButton' type= "radio" id ="R1"></td>
<td rowspan='2'> this is first kay</td>
<td> this is second key 1</td><td>Value 1</td>
</tr>
<tr>
<td>this is second key 2</td><td>Value 2</td>
</tr>
</table>
</body>
</html>
就我的 perl 脚本而言,我正在努力解决如何将 tr 放在正确的位置
#!/usr/bin/perl
$hash{$kayA}{$keyB}{val=>$value};
my $TabPrt = "<table><tr><th>Col A></th><th>Col B</th><th>Value</th></tr>";
for my $keyA (sort keys %hash)
{
my $Row = scaler keys %{$hash}{kayA};
$Row = "rowspan='$Row'";
$TabPrt = $TabPrt. "<tr> <td><input name='myButton' type= "radio" id ="R1"></td><td $Row></td>";
for my $keyB (sort keys %{$hash}{$keyA}
{
my $val = hash{$kayA}{$keyB}{val};
$TabPrt = $TabPrt . " <td>$keyB</td><td>$val</td>"
}
}
$TabPrt = $TabPrt . "</tr></table>";
【问题讨论】:
-
use strict;和use warnings;会告诉您“缩放器”是一个错字,而不是预期的“标量”。 -
Thanx Typo 抛开逻辑如何工作,将
& 放在哪里? -
在 Perl 中编写如此长的深度模板结构非常烦人。要么编写您自己的模板系统,使用自定义 DSL,要么停止编写复杂的报告并使用更多面向对象的方法。 TMTOWTDI 从未认为硬程序化色情是最好的解决方案。
标签: perl