summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
Diffstat (limited to 'op.c')
-rw-r--r--op.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/op.c b/op.c
index 02811c622e..973675896b 100644
--- a/op.c
+++ b/op.c
@@ -10364,9 +10364,12 @@ Perl_coresub_op(pTHX_ SV * const coreargssv, const int code,
);
case OA_BASEOP_OR_UNOP:
o = newUNOP(opnum,0,argop);
+ if (opnum == OP_CALLER) o->op_private |= OPpOFFBYONE;
+ else {
onearg:
- if (is_handle_constructor(o, 1))
+ if (is_handle_constructor(o, 1))
argop->op_private |= OPpCOREARGS_DEREF1;
+ }
return o;
default:
o = convert(opnum,0,argop);