Hi Ed, Thanks for the email. I'm actually using @param to return data (as well as the HTML) to the epl script which is calling another one via Execute. Perhaps there's a better way.
Michael On Fri, Jul 23, 2010 at 4:38 AM, Ed Grimm <ed_gr...@raytheon.com> wrote: > If your Embperl pages are calling regular perl module code that uses > @param, couldn't you just pass it from your Embperl page as a parameter, > rather than using it as a global? > > Alternatively, if you are talking about code within an Embperl page, how do > you process those without going through Execute? Note that the standard > apache handler calls Execute, last I checked. I seem to recall there's a > few other methods to run Embperl pages - but ultimately, they all call > Execute. Disclaimer: I haven't looked in a while, and it's late, and I'm > tired. > > -- > Ed Grimm > Identity Services > > > From: Michael Smith <smi...@gmail.com> To: > Gerald Richter - ECOS <gerald.rich...@ecos.de> > Cc: embperl@perl.apache.org, Michael Stevens <michael.stev...@dianomi.com>, > cabell.demarcel...@dianomi.com, Michael Smith <michael.sm...@dianomi.com> > Date: 07/22/2010 06:25 PM Subject: Re: @param seems to be shared between > Execute calls > ------------------------------ > > > > Thanks Gerald, > > That's good to know for the future. Is there a way to know if the code has > been called through Execute? I am actually using the same code both > directly and via Execute. > > Michael > > On Wed, Jul 21, 2010 at 10:19 AM, Gerald Richter - ECOS <* > gerald.rich...@ecos.de* <gerald.rich...@ecos.de>> wrote: > Hi Michael, > > > > @param is only intented to be used to pass parameters to Execute. Setting > it directly might work or might not… > > > > If you want to share data inside a request use > > > > $epreq -> {test} = 1 ; > > > > The hash of $epreq is not used by Embperl itself, so you are free to use it > and it exists exactly for the live time of one Apache request > > > > Gerald > > > > > > > > *From:* Michael Smith [mailto:*smi...@gmail.com* <smi...@gmail.com>] * > Sent:* Wednesday, July 21, 2010 11:05 AM > > * > To:* *embp...@perl.apache.org* <embperl@perl.apache.org> > *Cc:* Michael Stevens; > *cabell.demarcel...@dianomi.com*<cabell.demarcel...@dianomi.com>; > Michael Smith* > Subject:* Re: @param seems to be shared between Execute calls > > > > My problem is slightly different - though possibly a manifestation of the > same thing. I find that param isn't cleaned up between requests. > > > > I have two epl files: > > > > set.epl: > > [- $param[0]->{'test'} = 1 -] > > > > get.epl > > [+ Dumper(@param) +] > > > > I find that the data from set.epl turns up when I make a subsequent request > for get.epl (in practice it's a bit more random than that if one is running > multiple processes, so I make a few requests for set.epl and then a few for > get.epl) > > > > This only seems to be relevant if I reference param in the epl file I am > calling directly. If I reference it in epl files which are loaded in by > Execute, then they do appear to get cleaned up. > > > > Michael > > > > > > On Tue, Jul 20, 2010 at 10:20 PM, Ed Grimm > <*ed_gr...@raytheon.com*<ed_gr...@raytheon.com>> > wrote: > > Note that, under Apache, the cleanup code happens at the end of each > request - each of which could have dozens of Execute calls, between which it > is very definitely NOT called. > > I have not used Embperl much from within server scripts, but in my limited > use there, I've never seen the cleanup code fire. I suspect each script is > considered 'a request' for the purposes of the cleanup code (well, as far as > docs are concerned. I don't know if the code actually fires on END.) > > -- > Ed Grimm > Identity Services > > From: Michael Stevens > <*michael.stev...@dianomi.com*<michael.stev...@dianomi.com> > > To: *embp...@perl.apache.org* <embperl@perl.apache.org> Cc: Michael > Smith <*michael.sm...@dianomi.com* <michael.sm...@dianomi.com>>, * > cabell.demarcel...@dianomi.com* <cabell.demarcel...@dianomi.com> Date: > 07/20/2010 > 10:12 AM Subject: @param seems to be shared between Execute calls > > > > ------------------------------ > > > > > Hi. > > We're seeing an odd bug where @param seems to be shared between Execute > calls in the same process. The following code is a test case for this: > > #!/usr/bin/perl -w > > use strict; > use Embperl; > > my $output1; > > my $input = '[- $param[0]->{hello} = 42; -]'; > > Embperl::Execute({ > inputfile => "blah", > input => \$input, > output => \$output1, > }); > > my $output2; > my $input2 = '[- use Data::Dumper; print Dumper(\...@param); -]'; > > Embperl::Execute({ > inputfile => "blah", > input => \$input2, > output => \$output2 > }); > > Which on my machine outputs: > > $VAR1 = [ > { > 'hello' => 42 > } > ]; > > Surely this shouldn't happen? > > -- > Michael Stevens > Dianomi Ltd > 18 Buckingham Gate > London SW1E 6LB > > Tel: 020 7802 5530 > Fax: 020 7630 7356* > **www.dianomi.com* <http://www.dianomi.com/> > > The information in this message and any attachment is intended for the > addressee and is confidential and may be subject to legal privilege. > Dianomi Ltd, Registered Office: One America Square, Crosswall, London. > EC3N 2SG. Registered in England and Wales with Company Registration > Number 4513809. VAT registration number: 809754988 > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > *embperl-unsubscr...@perl.apache.org*<embperl-unsubscr...@perl.apache.org> > For additional commands, e-mail: > *embperl-h...@perl.apache.org*<embperl-h...@perl.apache.org> > > > >