#define EXISTS_ALIAS (RXapif_EXISTS | (2 << EXPECT_SHIFT))
#define SCALAR_ALIAS (RXapif_SCALAR | (1 << EXPECT_SHIFT))
+static
+tie_it(pTHX_ const char name, UV flag)
+{
+ GV *const gv = gv_fetchpvn(&name, 1, GV_ADDMULTI|GV_NOTQUAL, SVt_PVHV);
+ HV *const hv = GvHV(gv);
+ SV *rv = newSV_type(SVt_RV);
+
+ sv_setuv(newSVrv(rv, "Tie::Hash::NamedCapture"), flag);
+
+ sv_unmagic((SV *)hv, PERL_MAGIC_tied);
+ sv_magic((SV *)hv, rv, PERL_MAGIC_tied, NULL, 0);
+ SvREFCNT_dec(rv); /* As sv_magic increased it by one. */
+}
+
MODULE = Tie::Hash::NamedCapture PACKAGE = Tie::Hash::NamedCapture
PROTOTYPES: DISABLE
+BOOT:
+ tie_it(aTHX_ '-', RXapif_ALL);
+ tie_it(aTHX_ '+', RXapif_ONE);
+
SV *
TIEHASH(package, ...)
const char *package;