diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-04-18 21:29:11 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-04-18 21:29:32 -0700 |
commit | d806590792484020987549ec4683b175c90d6263 (patch) | |
tree | a86f5ad78f320212167e68200755801e977bf194 /op.c | |
parent | 006671a67d63718163a0f4771c9dc358db053aad (diff) | |
download | perl-d806590792484020987549ec4683b175c90d6263.tar.gz |
Make keys $scalar an lvalue
This does a run-time check to see whether $scalar is a hash ref, and
dies if it is not.
This is to keep keys \@_ consistent with keys @_.
I cannot simply use OPf_MOD, since that indicates *potential* lvalue
context (including subroutine args).
So, instead, I take advantage of the fact that OPf_SPECIAL is always
set on the LHS of an assignment (usually to indicate that local()
should not erase the value).
Diffstat (limited to 'op.c')
-rw-r--r-- | op.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -1690,6 +1690,7 @@ Perl_op_lvalue(pTHX_ OP *o, I32 type) break; case OP_KEYS: + case OP_RKEYS: if (type != OP_SASSIGN) goto nomod; goto lvalue_func; |