From 811a4de936cdd31b057f2952efd5352bfccbaef0 Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Mon, 24 Apr 2000 04:56:08 +0000 Subject: caller() wasn't returning the right number of elements for eval {...} p4raw-id: //depot/perl@5914 --- pp_ctl.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'pp_ctl.c') diff --git a/pp_ctl.c b/pp_ctl.c index acbcc7e72f..7a2eb20cf3 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -1521,15 +1521,21 @@ PP(pp_caller) else PUSHs(sv_2mortal(newSViv(gimme & G_ARRAY))); if (CxTYPE(cx) == CXt_EVAL) { + /* eval STRING */ if (cx->blk_eval.old_op_type == OP_ENTEREVAL) { PUSHs(cx->blk_eval.cur_text); PUSHs(&PL_sv_no); } - /* try blocks have old_namesv == 0 */ + /* require */ else if (cx->blk_eval.old_namesv) { PUSHs(sv_2mortal(newSVsv(cx->blk_eval.old_namesv))); PUSHs(&PL_sv_yes); } + /* eval BLOCK (try blocks have old_namesv == 0) */ + else { + PUSHs(&PL_sv_undef); + PUSHs(&PL_sv_undef); + } } else { PUSHs(&PL_sv_undef); -- cgit v1.2.1