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> 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] > *Sent:* Wednesday, July 21, 2010 11:05 AM > > *To:* embperl@perl.apache.org > *Cc:* Michael Stevens; 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> 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> > > To: > > embperl@perl.apache.org > > Cc: > > Michael Smith <michael.sm...@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 > > 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 > For additional commands, e-mail: embperl-h...@perl.apache.org > > >