【发布时间】:2011-03-30 01:16:01
【问题描述】:
是否可以在多次调用aroundMethodModier 之间传递变量?示例(这不起作用,但希望能传达我想要做的事情)
sub mysub { ... };
around 'mysub' => sub {
my $orig = shift;
my $self = shift;
my $value = get_value;
$self->orig(@_);
};
around 'mysub' => sub {
my $orig = shift;
my $self = shift;
my $value = shift;
my $output
= "sometext $value"
. $self->orig(@_);
. 'someothertext $value'
;
};
我最终希望将这些“周围”放置在可插入的特征中,在那里我不会真正知道预先加载了哪些,但最终输出将被整齐地格式化。
我的想法可能完全错误,因此欢迎提出其他建议。
【问题讨论】:
-
使用实例变量怎么样?
-
@jmz 实例变量?
-
喜欢
$self->{value} = get_value;....my $value = $self->{value}; -
@xenoterracide:MethodModifier 文档很清楚,顺序是 around2..around1...orig.
-
@jmz:“实例变量”我希望你的意思是属性。如果我在 Moose 模块中看到
$self->{value} = ...,我会打程序员的耳光。 @xenoterracide:around方法上的应用程序是 LIFO 堆栈。
标签: perl moose method-modifier