[Petal] Accessing coderefs

Bruno Postle bruno at mkdoc.com
Thu Mar 23 17:25:37 GMT 2006


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;



More information about the Petal mailing list