Data-Dump-Streamer
view release on metacpan or search on metacpan
lib/Data/Dump/Streamer.xs view on Meta::CPAN
#ifndef NEW_REGEX_ENGINE
void
regex(sv)
SV * sv
PROTOTYPE: $
PREINIT:
STRLEN patlen;
char reflags[6];
int left;
PPCODE:
{
/*
Checks if a reference is a regex or not. If the parameter is
not a ref, or is not the result of a qr// then returns undef.
Otherwise in list context it returns the pattern and the
modifiers, in scalar context it returns the pattern just as it
would if the qr// was blessed into the package Regexp and
stringified normally.
*/
lib/Data/Dump/Streamer.xs view on Meta::CPAN
void
hidden_keys(hash)
SV* hash
PROTOTYPE: \%
PREINIT:
HV* hv;
SV *key;
HE *he;
PPCODE:
if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
croak("First argument to hidden_keys() must be an HASH reference");
hv = (HV*)SvRV(hash);
(void)hv_iterinit(hv);
while((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))!= NULL) {
key=hv_iterkeysv(he);
if (HeVAL(he) == &MY_PLACEHOLDER) {
XPUSHs( key );
}
}
void
legal_keys(hash)
SV* hash
PROTOTYPE: \%
PREINIT:
HV* hv;
SV *key;
HE *he;
PPCODE:
if (!SvROK(hash) || SvTYPE(SvRV(hash)) != SVt_PVHV)
croak("First argument to legal_keys() must be an HASH reference");
hv = (HV*)SvRV(hash);
(void)hv_iterinit(hv);
while((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))!= NULL) {
key=hv_iterkeysv(he);
XPUSHs( key );
}
( run in 1.027 second using v1.01-cache-2.11-cpan-71847e10f99 )