通过字符串从子函数添加html代码

时间:2013-09-26 18:53:10

标签: perl

我有两个生成简单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输出。

2 个答案:

答案 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)

通过在函数中添加一个人工睡眠来解决此问题,因为它过早地返回/超时。