in reply to Eval and Exiting

If PHP::Session->new fails quietly, just returning undef without dieing, then $@ may not be set. That would match the behavior you see. You didn't say, is the redirect header printed even when exit is not taken?

After Compline,
Zaxo