Use the right prototype and a glob is fine (from Rafael).
[p5sagit/p5-mst-13.2.git] / pp_ctl.c
index ac33adf..0b00685 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2884,7 +2884,13 @@ S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
        *startop = PL_eval_root;
     } else
        SAVEFREEOP(PL_eval_root);
-    if (gimme & G_VOID)
+    if (gimme & G_VOID && ! PL_in_eval & EVAL_INREQUIRE)
+       /*
+        * EVAL_INREQUIRE (the code is being required) is special-cased :
+        * in this case we want scalar context to be forced, instead
+        * of void context, so a proper return value is returned from
+        * C<require> via this leaveeval op.
+        */
        scalarvoid(PL_eval_root);
     else if (gimme & G_ARRAY)
        list(PL_eval_root);