Is this for a script or an OO module?  If it is for an OO module then
your " aesthetically unpleasing" solution is probably the best.  For a
module you need to document these type of things so a future user can
know how to handle...

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
John Deighan
Sent: Tuesday, April 19, 2005 11:57 AM
To: [email protected]
Subject: die() without setting $@

I need to be able to jump to the end of the enclosing eval block, just
like 
a die() does, but without setting [EMAIL PROTECTED] Is there a way to do that? 
(I've 
checked the Perl docs, but couldn't find it). I could possibly die()
with a 
specific string, then use "if ($@ && ($@ ne <string>))" as the error
trap, 
but that's aesthetically unpleasing.

If you're interested in why, here's the explanation. Our web site is 
implemented via a series of "opcodes". The opcode is passed in the URL. 
There is a goto in our main script that dispatches to a particular
opcode, 
and the code implementing the opcodes is surrounded by an eval block.
When 
the output is generated, it's generated via a call to a library that 
outputs a page - usually using a template file. There is, however, also
a 
function called errorPage() to which you pass a string. Now, when 
errorPage() is called, there has to be no further HTTP output, so I'd 
prefer, at the end of the errorPage() routine, to pass directly to the
end 
of the eval block in the main code. die() does just that, but after the 
eval block, there's a "if ($@)" that handles any real errors, like
database 
connection errors, direct calls to die(), etc., and I don't want calls
to 
errorPage() to be treated like true errors (they're "user errors", which

just means that we want to display a page to the user informing them of 
their error and how to correct it, and errorPage() does just that. Real 
errors result in us receiving an e-mail with the error message, and the 
error being logged to a database table). 

_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to