Re: Accessing coderefs

Bruno Postle <[email protected]> Thu, 23 Mar 2006 17:25:37 +0000
Newsgroups gmane.comp.lang.perl.modules.petal
Message-ID <[email protected]>
On Mon 20-Mar-2006 at 09:09 -0500, Peter Rabbitson wrote:
>
> Petal gives me no problems if I am to use object/method and supply
> parameters. In my case it is very problematic to supply an object to
> process(), so I was wondering if there is a way to call a coderef.

No, it seems that Petal explicitly stops you passing parameters to 
anything that isn't an object.

The following patch seems to make this work, though it hasn't had 
any thorough testing.  Can you try it out?

Index: lib/Petal/Hash/Var.pm
===================================================================
RCS file: /var/spool/cvs/Petal/lib/Petal/Hash/Var.pm,v
retrieving revision 1.17
diff -r1.17 Var.pm
98a99,100
>           unless (isa $current->{$next}, 'CODE')
>           {
100a103
>           }
130c133
<       $current = (isa ($current, 'CODE')) ? $current->() : $current;
---
>       $current = (isa ($current, 'CODE')) ? $current->(@args) : $current;