You need this patch for G_EVAL to return values correctly.
cleanup:
if (flags & G_EVAL) {
if (scopestack_ix > oldscope) {
- op = (OP*)&myop;
- pp_leavetry();
+ SV **newsp;
+ PMOP *newpm;
+ I32 gimme;
+ register CONTEXT *cx;
+ I32 optype;
+
+ POPBLOCK(cx,newpm);
+ POPEVAL(cx);
+ pop_return();
+ curpm = newpm;
+ LEAVE;
}
Copy(oldtop, top_env, 1, jmp_buf);
}