case KEY_local: case KEY_lt: case KEY_m : case KEY_map : case KEY_my:
case KEY_ne : case KEY_next : case KEY_no: case KEY_or: case KEY_our:
case KEY_package: case KEY_print: case KEY_printf:
- case KEY_prototype: case KEY_q: case KEY_qq: case KEY_qr: case KEY_qw:
+ case KEY_q : case KEY_qq : case KEY_qr : case KEY_qw :
case KEY_qx : case KEY_redo : case KEY_require: case KEY_return:
case KEY_s : case KEY_say : case KEY_scalar : case KEY_sort :
case KEY_split: case KEY_state: case KEY_study : case KEY_sub :
evalbytes=> 'eval "string"',
join => 'join or string',
pos => 'match position',
+ prototype=> 'subroutine prototype',
readline => '<HANDLE>',
readpipe => 'quoted execution (``, qx)',
reset => 'symbol reset',
is pos $x, 4, 'writing to &pos without args';
}
+test_proto 'prototype';
+$tests++;
+is &myprototype(\&myprototype), prototype("CORE::prototype"), '&prototype';
test_proto 'quotemeta', '$', '\$';
my $word = $1;
next if
$word =~ /^(?:s(?:t(?:ate|udy)|(?:pli|or)t|calar|ay|ub)?|d(?:ef
- ault|ump|o)|p(?:r(?:ototype|intf?)|ackag
+ ault|ump|o)|p(?:rintf?|ackag
e)|e(?:ls(?:if|e)|val|q)|g(?:[et]|iven|oto
|rep)|u(?:n(?:less|def|til)|se)|l(?:(?:as)?t|ocal|e)|re
(?:quire|turn|do)|__(?:DATA|END)__|for(?:each|mat)?|(?:
__DATA__ __END__ AUTOLOAD BEGIN UNITCHECK CORE DESTROY END INIT CHECK and
cmp default do dump else elsif eq eval for foreach
format ge given goto grep gt if last le local lt m map my ne next
- no or our package print printf prototype q qq qr qw qx redo require
+ no or our package print printf q qq qr qw qx redo require
return s say scalar sort split state study sub tr undef unless until use
when while x xor y
);
next if ($proto =~ /\@/);
# These ops currently accept any number of args, despite their
# prototypes, if they have any:
- next if $word =~ /^(?:chom?p|exec|keys|each|not|read(?:lin|pip)e
+ next if $word =~ /^(?:chom?p|exec|keys|each|not
+ |(?:prototyp|read(?:lin|pip))e
|reset|system|values|l?stat)|evalbytes/x;
$tests ++;