List-Flatten-XS
view release on metacpan or search on metacpan
lib/List/Flatten/XS.xs view on Meta::CPAN
return sv_2mortal(newRV_inc((SV *)result));
}
MODULE = List::Flatten::XS PACKAGE = List::Flatten::XS
PROTOTYPES: DISABLE
void *
flatten(ref, svlevel = sv_2mortal(newSViv(-1)))
SV *ref;
SV *svlevel;
PPCODE:
{
if (!SvROK(ref) || SvTYPE(SvRV(ref)) != SVt_PVAV)
Perl_croak(aTHX_ "Please pass an array reference to the first argument");
IV level = SvIV(svlevel);
SV *result = (level < 0) ? _fast_flatten(aTHX_ ref)
: _flatten_per_level(aTHX_ ref, level);
if (GIMME_V == G_ARRAY) {
AV *av_result = (AV *)SvRV(result);
( run in 0.796 second using v1.01-cache-2.11-cpan-5511b514fd6 )