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

问题描述 投票:0回答:2

我有 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 输出。

perl
2个回答
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';
}

输出:

<div class=sidepage>foooo</div>

如果您的子程序使用

print
而不是
return
,则子程序返回的值将为
1
(假设
print
成功)。另请参阅
perldoc perlsub


0
投票

通过在函数中添加人工睡眠来修复此问题,因为它返回得太早/超时。

© www.soinside.com 2019 - 2024. All rights reserved.