diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-08-25 14:33:03 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-08-25 14:33:03 -0700 |
commit | bf0571fdfef93e57e5d288048145a1610dd40938 (patch) | |
tree | 14ef3a17b36cd36d65289dd4a85e1fd7713b823e /gv.c | |
parent | 0b19d81a098d6a9b895996d374ca0adc621f1590 (diff) | |
download | perl-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.c | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -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) { |