if ((temp = hv_fetch(spec, "regex", 5, 0))) {
dSP;
IV has_regex = 0;
IV ok;
SvGETMAGIC(*temp);
if (SvPOK(*temp)) {
has_regex = 1;
}
else if (SvROK(*temp)) {
SV* svp;
svp = (SV*)SvRV(*temp);
#if PERL_VERSION <= 10
if (SvMAGICAL(svp) && mg_find(svp, PERL_MAGIC_qr)) {
has_regex = 1;
}
#else
if (SvTYPE(svp) == SVt_REGEXP) {
has_regex = 1;
}
#endif
}
if (!has_regex) {
SV* buffer;
buffer = sv_2mortal(newSVpv("'regex' validation parameter for '", 0));
sv_catsv(buffer, get_called(options));
sv_catpv(buffer, " must be a string or qr// regex\n");
FAIL(buffer, options);
}
####
PV_TEST_PERL=1 perl script.pl
####
BEGIN { $ENV{PV_TEST_PERL} = 1; }