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
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to