Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Style - how to give class method call as parameter

by Corion (Pope)
on Jun 26, 2012 at 13:47 UTC ( #978427=note: print w/ replies, xml ) Need Help??


in reply to Style - how to give class method call as parameter

Personally, I like number three best, but as an alternative, you can wrap number three in some syntactic sugar:

sub transaction(&$$) { my ($cb, $self,$timeout) = @_; $self->do_sub_with_timeout( $cb, $timeout ); }; transaction { $deployer->extend_order_lease( $order, $end_date ); } $self, $timeout;

Unfortunately, the & prototype must come as the first argument. I'm also not convinced that this style is less confusing/more readable than the other.


Comment on Re: Style - how to give class method call as parameter
Select or Download Code
Re^2: Style - how to give class method call as parameter
by strat (Canon) on Jun 26, 2012 at 18:23 UTC

    Well, I reply to Corion's posting although it becomes a general reply to all who replied ;-)

    Thank you very much for your replies. I hoped for a beautiful way to write this, but I will use version 3 since it looks less ugly than the other two ways.

    Adding a timeout-parameter to extend_order_lease would be best. But I don't dare to change the external framework or Boldra would look at me with very sad eyes the whole day long ;-)

    The synthetic sugar with the prototype looks nice, but in my case I don't want to use it. I put the methods do_sub_with_timeout or do_method_with_timeout into a Moose role so we can be use them everywhere in our framework (in the moment in about 4 different classes), and so I want them to be methods and not subs for not to need import subs into a foreign namespace. (And methods ignore prototypes anyway.)

    Have a nice evening

    Best regards,
    perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://978427]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (11)
As of 2014-10-31 10:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (216 votes), past polls