Array-Slice
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
array_slice(sv,howmany)
SV *sv
int howmany
PREINIT:
int i, j, len;
AV *av;
PPCODE:
if (howmany == 0)
XSRETURN_EMPTY;
if (howmany < 0)
croak("Second argument must be a positive integer");
if (!SvROK(sv))
croak("Argument to Array::Slice::slice must be a reference");
sv = SvRV(sv);
if (SvTYPE(sv) != SVt_PVAV)
croak("Argument to Array::Slice::slice must be an array reference");
av = (AV *) sv;
);
}
XSRETURN( howmany);
}
XSRETURN_EMPTY;
void
reset(sv,...)
SV *sv
PROTOTYPE: \@;$
PPCODE:
if (!SvROK(sv))
croak("Argument to Array::Slice::reset must be a reference");
sv = SvRV(sv);
if (SvTYPE(sv) != SVt_PVAV)
croak("Argument to Array::Slice::reset must be an array reference");
if ( items == 1 || SvTYPE( ST(1)) == SVt_NULL) {
clear_iterator( aTHX_ sv);
} else {
int i = SvIV( ST( 1));
AV *av = (AV *) sv;
( run in 0.484 second using v1.01-cache-2.11-cpan-71847e10f99 )