no support for funcs that do not parse like funcs */
case KEY___DATA__: case KEY___END__: case KEY_and: case KEY_AUTOLOAD:
case KEY_BEGIN : case KEY_CHECK : case KEY_cmp: case KEY_CORE :
- case KEY_default : case KEY_delete : case KEY_DESTROY:
+ case KEY_default : case KEY_DESTROY:
case KEY_do : case KEY_dump : case KEY_else : case KEY_elsif :
case KEY_END : case KEY_eq : case KEY_eval : case KEY_exists :
case KEY_for : case KEY_foreach: case KEY_format: case KEY_ge :
case KEY_x : case KEY_xor : case KEY_y :
return NULL;
case KEY_chdir:
- case KEY_chomp: case KEY_chop: case KEY_defined:
+ case KEY_chomp: case KEY_chop: case KEY_defined: case KEY_delete:
case KEY_each: case KEY_eof: case KEY_exec:
case KEY_keys:
case KEY_lstat:
if (m?__END__?..${\0} and /^[-+](.*)/) {
my $word = $1;
next if
- $word =~ /^(?:s(?:t(?:ate|udy)|(?:pli|or)t|calar|ay|ub)?|d(?:e(?:f
- ault|lete)|ump|o)|p(?:r(?:ototype|intf?)|ackag
+ $word =~ /^(?:s(?:t(?:ate|udy)|(?:pli|or)t|calar|ay|ub)?|d(?:ef
+ ault|ump|o)|p(?:r(?:ototype|intf?)|ackag
e|os)|e(?:ls(?:if|e)|xists|val|q)|g(?:[et]|iven|lob|oto
|rep)|u(?:n(?:less|def|til)|se)|l(?:(?:as)?t|ocal|e)|re
(?:quire|turn|do)|__(?:DATA|END)__|for(?:each|mat)?|(?:
my %unsupported = map +($_=>1), qw (
__DATA__ __END__ AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK and
- cmp default delete do dump else elsif eq eval exists for foreach
+ cmp default do dump else elsif eq eval exists for foreach
format ge given glob goto grep gt if last le local lt m map my ne next
no or our package pos print printf prototype q qq qr qw qx redo require
return s say scalar sort split state study sub tr undef unless until use
my %args_for = (
dbmopen => '%1,$2,$3',
dbmclose => '%1',
+ delete => '$1[2]',
);
use File::Spec::Functions;
CORE::state $protochar = qr/([^\\]|\\(?:[^[]|\[[^]]+\]))/;
my $numargs =
- () = $proto =~ s/;.*//r =~ /\G$protochar/g;
+ $word eq 'delete' ? 1 :
+ (() = $proto =~ s/;.*//r =~ /\G$protochar/g);
my $code =
"#line 1 This-line-makes-__FILE__-easier-to-test.
sub { () = (my$word("