-2

シンプルなHTML出力を生成する2つの関数があります

  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 出力が表示されます。

4

2 に答える 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';
}

__END__

<div class=sidepage>foooo</div>

printサブルーチンがの代わりに を使用する場合、サブルーチンreturnから返される値は(成功したと1仮定して) になります。printも参照してくださいperldoc perlsub

于 2013-09-26T19:07:27.170 に答える
0

関数に人工的なスリープを追加することでこれを修正しました。戻りが早すぎる/タイムアウトしていたためです。

于 2013-09-27T03:54:03.050 に答える