2010-08-15 22 views
1

是否可以將多個調用之間的變量傳遞給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' 
     ; 
}; 

我最終想擁有這些「變通」放置在可插拔的特性,在這裏我就真的不知道哪些是裝事前,但最終的輸出將被整齊地格式化。

有可能我在考慮這個完全錯誤的,所以歡迎其他建議。

+0

如何使用實例變量? – jmz 2010-08-15 11:02:55

+0

@jmz實例變量? – xenoterracide 2010-08-15 11:05:32

+0

Like'$ self - > {value} = get_value;'....'my $ value = $ self - > {value};' – jmz 2010-08-15 11:35:31

回答

0

使用實例變量:

$self->{value} = get_value; 
... 
my $value = $self->{value}; 

一個實際的答案見問題commments我只是重申在這裏,所以我可以接受的答案,謝謝到:

jmz

+0

作爲一個附註,我沒有最終使用這種模式來實現,我只是放棄了這個目標。 – xenoterracide 2010-12-28 00:25:13