[英]How to exit a tmpl loop in perl?
我在Perl中使用html模板生成一个动态网站,我的Script1.pm
生成一个表并将其作为tmpl_loop发送到template.tmpl
以在网站上显示一个表。
到目前为止,该方法运行良好,但是随着表的行数超过100,000行,整个浏览器开始滞后。
我可以设置计数器以在10000次迭代后退出tmpl循环吗?
仅在脚本中缩小表是行不通的,因为我需要为导出文件完成该表。
如果您使用Template :: Toolkit ,则可以使用特殊的loop
变量:
[% FOREACH match IN results %]
[% LAST IF loop.count > 10000 %]
[% END %]
请注意, BREAK
也是LAST
的别名。
首先整理数据,然后再将其发送到模板。
例如改变
$template->param(ROWS => \@rows);
至
splice(@rows, 10_000);
$template->param(ROWS => \@rows);
要么
my @truncated_rows = @rows[0 .. $#rows < 10_000 ? $#rows : 10_000];
$template->param(ROWS => \@truncated_rows);
后者是非破坏性的,因此,如果以后在程序中需要整个行集以用于其他目的,则它们仍然可用。 (呈现输出后继续处理似乎很麻烦,但是对该问题的更新似乎表明这是必需的。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.