更新并使用包中的变量

时间:2014-02-19 19:55:12

标签: perl

我有以下包裹:

package My::Content;

our $new = undef;
our $content = '<header>content-start'.$new.'content-end</header>';

1;

以下脚本:

use My::Content;
use warnings;
use strict;

$My::Content:new = '++test++';

print $My::Content:content;

但结果是'content-startcontent-end'。据我所知,包变量$content在编译时设置,$ new值被视为undef,无论后来的变量更新如何。是否有可能以某种方式在$ content计算之前设置$ new值?
结果我想看'content-start ++ test ++ content-end'

1 个答案:

答案 0 :(得分:2)

不,但是让content成为一个函数,它可以在使用时重新计算。

package My::Content;

our $new = undef;
sub content { '<header>content-start'.$new.'content-end</header>' }

use My::Content;
use warnings;
use strict;

$My::Content:new = '++test++';

print My::Content:content;