Array-Slice

 view release on metacpan or  search on metacpan

Slice.xs  view on Meta::CPAN


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;

Slice.xs  view on Meta::CPAN

			);
		}
		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 )