From: Rafael Garcia-Suarez Date: Tue, 17 Jan 2006 19:03:51 +0000 (+0000) Subject: The current OP that is tested in doeval() can be a require(), an X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ae706db49f17350f7e2ed5eccdc792223f4ea020;p=p5sagit%2Fp5-mst-13.2.git The current OP that is tested in doeval() can be a require(), an eval() or a do(). When we test whether OPf_SPECIAL is set on it, be sure to take into account that it's the eval-related meaning of OPf_SPECIAL we're testing for, not the require-related one. p4raw-id: //depot/perl@26881 --- diff --git a/pp_ctl.c b/pp_ctl.c index 8675561..bdacfce 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -2922,7 +2922,7 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq) PL_error_count = 0; PL_curcop = &PL_compiling; PL_curcop->cop_arybase = 0; - if (saveop && saveop->op_flags & OPf_SPECIAL) + if (saveop && saveop->op_type != OP_REQUIRE && saveop->op_flags & OPf_SPECIAL) PL_in_eval |= EVAL_KEEPERR; else sv_setpvn(ERRSV,"",0);