[OT] Wrapping methods

Ask Bjørn Hansen ask at develooper.com
Mon Jul 6 19:50:07 BST 2009


On Jul 6, 2009, at 9:06, Nicholas Clark wrote:


> Of course this can also be solved in various other ways, such as  
> having the
> code be
>
>   @ISA = 'Generic::Base::ClassWithTimeout';
>
>   sub run_with_timeout {
>        ... # does stuff
>   }
>
> and Generic::Base::ClassWithTimeout having a run() method that calls
> $self->run_with_timeout(...) inside the alarmed block, but that  
> doesn't feel
> as elegant an interface.

I'm pretty sure Moose can help with this sort of thing.

I think you can get the API reasonably elegant with just clever naming  
though.  Don't make it "run_with_timeout", but "_run" (or whatever -  
something generic).   The Generic::Base::run can call that  
automatically so it'll Just Work for all the classes (with or without  
wrappers).


  - ask


More information about the london.pm mailing list