You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Kathryn Andersen <ka...@katspace.homelinux.org> on 2006/10/12 23:57:18 UTC

Being called twice

I am using Embperl::Object 2.2.0 (with mod_perl 2.0.2 on Apache 2.0.58)
I've been trying to implement an email form, and have been completely
baffled because the mail was always being sent twice.
Trying to track things down, I put some warning calls in my epwebapp.pl
file, and it seems as if get_recipe is being called twice:
once from Embperl::Object and once from Embperl::Req
This is actually happening for all my files, not just the mail-form one,
but I never noticed it before because all the pages were displaying
fine; it wasn't until there was something which had additional effects
(sending mail) that I noticed this was happening.

Why is this happening?  Is there something I am doing wrong, some
additional setting or parameter which needs to be set so that a page is
only executed once?

My base.epl file is very simple: it just consists of one line:

        [- Execute ('*') -]

All my templating is done with custom XSLT files; one of the things that
my get_recipe does is that when the requested file is a html file,
it gives a custom recipe which does XSLT processing (with the desired
XSLT template file) followed by Embperl processing (the opposite to
EmbperlXSLT, which does Embperl processing followed by XSLT processing).

I am completely baffled, and very frustrated.

Kathryn Andersen
-- 
 _--_|\     | Kathryn Andersen	<http://www.katspace.com>
/      \    | 
\_.--.*/    | GenFicCrit mailing list <http://www.katspace.com/gen_fic_crit/>
      v     | 
------------| Melbourne -> Victoria -> Australia -> Southern Hemisphere
Maranatha!  |	-> Earth -> Sol -> Milky Way Galaxy -> Universe

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Re: Being called twice

Posted by 'Kathryn Andersen' <ka...@katspace.homelinux.org>.
On Thu, Oct 19, 2006 at 10:10:01PM +0200, Gerald Richter wrote:
> > 
> > I am using Embperl::Object 2.2.0 (with mod_perl 2.0.2 on 
> > Apache 2.0.58) I've been trying to implement an email form, 
> > and have been completely baffled because the mail was always 
> > being sent twice.
> > Trying to track things down, I put some warning calls in my 
> > epwebapp.pl file, and it seems as if get_recipe is being called twice:
> > once from Embperl::Object and once from Embperl::Req 
> 
> get_recipe is called for every file that Embperl processes.

Yes, I know; the debug code I put in there was giving information about
the file that was being processed, and I was puzzled and concerned that
the .html file containg the email code was being called twice.
 
> Embperl::Object loads the file and executes the [! !] blocks, while during
> the request the other blocks are executed. For both types of file access
> get_recipe is called.

Ah.  There are [! and [- and [+ blocks in the file; that explains it.

> Since get_recipe is only intened to return a recipe
> and not to do any processing, this should be no problem at all, but gives
> you the chance to change your recipe during the request initialisation.

Why would one want to do that?  And how?
 
> I don't see why your mail is sent twice, because of the double call to
> get_recipe. Do you send your mail inside of get_recipe?

Certainly not!

> If yes, you should
> use an application object instead and use the init method to do such work.

I'm not following you here.

Kathryn Andersen
-- 
 _--_|\     | Kathryn Andersen	<http://www.katspace.com>
/      \    | 
\_.--.*/    | GenFicCrit mailing list <http://www.katspace.com/gen_fic_crit/>
      v     | 
------------| Melbourne -> Victoria -> Australia -> Southern Hemisphere
Maranatha!  |	-> Earth -> Sol -> Milky Way Galaxy -> Universe

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


RE: Being called twice

Posted by Gerald Richter <ri...@ecos.de>.
> 
> I am using Embperl::Object 2.2.0 (with mod_perl 2.0.2 on 
> Apache 2.0.58) I've been trying to implement an email form, 
> and have been completely baffled because the mail was always 
> being sent twice.
> Trying to track things down, I put some warning calls in my 
> epwebapp.pl file, and it seems as if get_recipe is being called twice:
> once from Embperl::Object and once from Embperl::Req 


get_recipe is called for every file that Embperl processes.

Embperl::Object loads the file and executes the [! !] blocks, while during
the request the other blocks are executed. For both types of file access
get_recipe is called. Since get_recipe is only intened to return a recipe
and not to do any processing, this should be no problem at all, but gives
you the chance to change your recipe during the request initialisation.

I don't see why your mail is sent twice, because of the double call to
get_recipe. Do you send your mail inside of get_recipe? If yes, you should
use an application object instead and use the init method to do such work.

Gerald



 
** Virus checked by BB-5000 Mailfilter ** 


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org