It panics if the context it has just popped back to isn't a CXt_EVAL.
Since we have just called dopoptoeval() which can only pop to an eval, and
since we assert that its an eval, this seems such an unlikely "this can
can never happen" that it doesn't really seem worth testing for.
It was added in perl5.000, and may have made slightly more sense then, as
there used to be a POPBLOCK just before it.
(P) Failed an internal consistency check while trying to reset a weak
reference.
-=item panic: die %s
-
-(P) We popped the context stack to an eval context, and then discovered
-it wasn't an eval context.
-
=item panic: do_subst
(P) The internal pp_subst() routine was called with invalid operational
cx = &cxstack[cxstack_ix];
assert(CxTYPE(cx) == CXt_EVAL);
+
+ /* return false to the caller of eval */
newsp = PL_stack_base + cx->blk_oldsp;
gimme = cx->blk_gimme;
-
if (gimme == G_SCALAR)
*++newsp = &PL_sv_undef;
PL_stack_sp = newsp;
-
- if (CxTYPE(cx) != CXt_EVAL) {
- STRLEN msglen;
- const char* message = SvPVx_const(exceptsv, msglen);
- PerlIO_write(Perl_error_log, (const char *)"panic: die ", 11);
- PerlIO_write(Perl_error_log, message, msglen);
- my_exit(1);
- }
-
CX_LEAVE_SCOPE(cx);
POPEVAL(cx);
POPBLOCK(cx);