我有 2 个函数可以生成简单的 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;
但是格式修饰符“%s”始终只包含数字1。
One_data /does/ 可以工作,因为我已将其移至一个简单的 perl 脚本中,并且它显示所需的 html 输出。
您的
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';
}
输出:
<div class=sidepage>foooo</div>
如果您的子程序使用
print
而不是 return
,则子程序返回的值将为 1
(假设 print
成功)。另请参阅perldoc perlsub
。
通过在函数中添加人工睡眠来修复此问题,因为它返回得太早/超时。