summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-08-25 14:33:03 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-08-25 14:33:03 -0700
commitbf0571fdfef93e57e5d288048145a1610dd40938 (patch)
tree14ef3a17b36cd36d65289dd4a85e1fd7713b823e /gv.c
parent0b19d81a098d6a9b895996d374ca0adc621f1590 (diff)
downloadperl-bf0571fdfef93e57e5d288048145a1610dd40938.tar.gz
&CORE::foo() for @ and $@ prototypes, except unlink
This commit allows the CORE subroutines for functions with @ and $@ prototypes to be called through references and via amper- sand syntax. unlink is not included in this commit, as it requires special casing due to its use of implicit $_. Since these functions require a pushmark, and since it has to come between two things that pp_coreargs does, it’s easiest to flag the coreargs op (with the OPpCOREARGS_PUSHMARK flag added in the previous commit) and call pp_pushmark directly from pp_coreargs.
Diffstat (limited to 'gv.c')
-rw-r--r--gv.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/gv.c b/gv.c
index 2b469ec891..e695f7a749 100644
--- a/gv.c
+++ b/gv.c
@@ -1352,27 +1352,26 @@ Perl_gv_fetchpvn_flags(pTHX_ const char *nambeg, STRLEN full_len, I32 flags,
case KEY_or: case KEY_x: case KEY_xor:
return gv;
case KEY_chdir:
- case KEY_chmod: case KEY_chomp: case KEY_chop: case KEY_chown:
+ case KEY_chomp: case KEY_chop:
case KEY_close:
- case KEY_dbmclose: case KEY_dbmopen: case KEY_die:
+ case KEY_dbmclose: case KEY_dbmopen:
case KEY_each: case KEY_eof: case KEY_exec: case KEY_exit:
- case KEY_formline: case KEY_getc: case KEY_getpgrp:
- case KEY_gmtime: case KEY_index: case KEY_join:
- case KEY_keys: case KEY_kill:
+ case KEY_getc: case KEY_getpgrp: case KEY_gmtime:
+ case KEY_index: case KEY_keys:
case KEY_localtime: case KEY_lock: case KEY_lstat:
- case KEY_mkdir: case KEY_open: case KEY_pack: case KEY_pop:
+ case KEY_mkdir: case KEY_open: case KEY_pop:
case KEY_push: case KEY_rand: case KEY_read: case KEY_readline:
- case KEY_recv: case KEY_reset: case KEY_reverse:
+ case KEY_recv: case KEY_reset:
case KEY_rindex: case KEY_select: case KEY_send:
case KEY_setpgrp: case KEY_shift: case KEY_sleep:
- case KEY_splice: case KEY_sprintf:
+ case KEY_splice:
case KEY_srand: case KEY_stat: case KEY_substr:
- case KEY_syscall: case KEY_sysopen: case KEY_sysread:
+ case KEY_sysopen: case KEY_sysread:
case KEY_system: case KEY_syswrite:
case KEY_tell: case KEY_tie: case KEY_tied:
case KEY_truncate: case KEY_umask: case KEY_unlink:
case KEY_unpack: case KEY_unshift: case KEY_untie:
- case KEY_utime: case KEY_values: case KEY_warn: case KEY_write:
+ case KEY_values: case KEY_write:
ampable = FALSE;
}
if (ampable) {