/* Name of a subroutine - must be a bareword, could be special */
subname : WORD { const char *const name = SvPV_nolen_const(((SVOP*)$1)->op_sv);
if (strEQ(name, "BEGIN") || strEQ(name, "END")
- || strEQ(name, "INIT") || strEQ(name, "CHECK"))
+ || strEQ(name, "INIT") || strEQ(name, "CHECK")
+ || strEQ(name, "UNITCHECK"))
CvSPECIAL_on(PL_compcv);
$$ = $1; }
;
{ $$ = newOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0); }
| REQUIRE term /* require Foo *//* FIMXE for MAD needed? */
{ $$ = newUNOP(OP_REQUIRE, $1 ? OPf_SPECIAL : 0, $2); }
+ | UNIOPSUB
+ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1)); }
| UNIOPSUB term /* Sub treated as unop */
{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, $2, scalar($1))); }