我有两个生成简单HTML输出的函数
sub one_data {}
sub generate_page {}
generate_page是'肉和土豆'生成所有内容,但one_data {}函数生成少量的html(div等)
我正在尝试将它添加到generate_page所做的代码部分,例如:
$npage .= sprintf "<div class=sidepage>%s</div>", &one_data();
即使one_data是一个简单的字符串,它似乎也无法完成我所做的事情(理论上它应该适用于每个perldoc sprintf。
我也试过这个,即:
my $data = &one_data();
$npage .= sprintf "<div class=whatever>%s</div>", $data;
但格式修饰符&#34;%s&#34;只包含数字1。
One_data / does / work,因为我已将其移动到一个简单的perl脚本中,并显示所需的html输出。
答案 0 :(得分:2)
您的one_data
子语应使用明确的return语句:
use warnings;
use strict;
my $npage .= sprintf "<div class=sidepage>%s</div>", one_data();
print "$npage\n";
sub one_data {
return 'foooo';
}
__END__
<div class=sidepage>foooo</div>
如果您的子使用print
而不是return
,则子返回的值将为1
(假设print
成功)。另请参阅perldoc perlsub
。
答案 1 :(得分:0)
通过在函数中添加一个人工睡眠来解决此问题,因为它过早地返回/超时。