2015-01-04 53 views
1

我正在編寫一個具有多個函數的Web API,例如:login,logout,summary等。如何將函數追加到類函數中

每次我打電話任何這些我檢查我張貼的數據轉換成JSON功能和I檢查護照已過期

我怎麼能預先附加我每次調用一個函數時,做這兩件事的功能的API對象

+1

這在很大程度上取決於你所使用的架構。你在用什麼? Mojolicious,催化劑,舞者,CGI或其他什麼? –

+1

'pre append' =>'prepend' – 7stud

+0

哦,如果@ 7stud的評論是你正在尋找的,我[寫了一個模塊](https://github.com/P-Seebauer/acme_autowrap/blob/master/lib/ ACME/Autowrap.pm)一次,但還沒有把它放在cpan上,因爲一些錯誤。我認爲你更喜歡cpan的東西。 –

回答

1

我認爲Sub::Prepend可能會幫助你。

樣品:

use Sub::Prepend 'prepend'; 

    sub foo ($) { 
     print "Foo executed with \@_ = (@_).\n"; 
    } 

    BEGIN { 
     prepend foo => sub { 
      # This is called before foo executes. 
      print "Foo was called with \@_ = (@_).\n"; 
      push @_, 'and more'; 
     } 
    } 

    my @bar = qw/ foo bar baz /; 
    foo(@bar); # The prototype is preserved! 

    __END__ 
    Foo was called with @_ = (3). 
    Foo executed with @_ = (3 and more).