The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More qw(no_plan);
use PerlIO::via::Skip ;

my $Data   = do { local $/=undef ; <DATA> };
my $Result ;

sub work ($$;$$) {
        my ($start, $end, $count) = @_ ;

	$ENV{ viaSKIP} = { start=>$start, end=>$end };
	open DATA, '<',  \$Data   or die $!;
	open my $o, '>:via(Skip)', \$Result or die $!;
	my $a;
	print $o  scalar <DATA>      for 1..($count||1) ;
	$Result;
}

is work( apple  =>  melon  => 4       ) , "apple\norange\nmelon\n" ;
is work( apple  =>  melon  => 1       ) , "apple\n" ;

is work( apple  =>  melon  => 3       ) , "apple\norange\nmelon\n" ;
is work( apple  =>  melon  => 2       ) , "apple\norange\n" ;
is work( apple  =>  melon  =>         ) , "apple\n" ;
is work( melon  =>  grapes => 3       ) , "melon\n" ;
is work( melon  =>  grapes => 4       ) , "melon\ngrapes\n" ;
__DATA__
apple
orange
melon
grapes