Mailing List Archive

Example on using [- Execute -] to recursively call sub?
Hi!

I've only been using EmbPerl for a few days, and I could really use some
help...

I'm using HTML-Embperl-1.3b3 with mod_perl and Apache. I'm trying to write
some recursive code, but am having problems with the paramater passing. If
I call the routine with:

[- recursive_print ($id) -]

I have no problem. But if I call it with:

[- Execute ('#recursive_print', $id) -]
or
[- Execute ({sub => '#recursive_print', param => $id }) -]

(and even more different types I've tried)

I keep getting:

HTML::Embprl::Req=SCALAR(0x84fc990)

or something similar.

Help! Desparately need to get this project done, and recursive code is
really the only way to do this.

Thanks!

Ben
----------------------------
BENJAMIN J. WEISS
2LT, SC, OKARNG
45th Infantry Brigade (SEP)
Signal Platoon Leader
RE: Example on using [- Execute -] to recursively call sub? [ In reply to ]
Hi!
>
> I've only been using EmbPerl for a few days, and I could really use some
> help...
>
> I'm using HTML-Embperl-1.3b3 with mod_perl and Apache. I'm
> trying to write
> some recursive code, but am having problems with the paramater
> passing. If
> I call the routine with:
>
> [- recursive_print ($id) -]
>
> I have no problem. But if I call it with:
>
> [- Execute ('#recursive_print', $id) -]
> or
> [- Execute ({sub => '#recursive_print', param => $id }) -]
>

If you give the param parameter you must pass an array ref, like:

[- Execute ({sub => '#recursive_print', param => [ $id ] }) -]

> (and even more different types I've tried)
>
> I keep getting:
>
> HTML::Embprl::Req=SCALAR(0x84fc990)
>
> or something similar.
>
> Help! Desparately need to get this project done, and recursive code is
> really the only way to do this.
>

If you call your sub via Execute, params are passed via the array @param. So
your $id is passed in $param[0].

Gerald

-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting

Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------