Acme-Throw

 view release on metacpan or  search on metacpan

t/lib/IO/String.pm  view on Meta::CPAN

    return if $pos >= $len;

    unless (defined $/) {  # slurp
	*$self->{pos} = $len;
	return substr($$buf, $pos);
    }

    unless (length $/) {  # paragraph mode
	# XXX slow&lazy implementation using getc()
	my $para = "";
	my $eol = 0;
	my $c;
	while (defined($c = $self->getc)) {
	    if ($c eq "\n") {
		$eol++;
		next if $eol > 2;
	    }
	    elsif ($eol > 1) {
		$self->ungetc($c);
		last;
	    }
	    else {
		$eol = 0;
	    }
	    $para .= $c;
	}
	return $para;   # XXX wantarray
    }

    my $idx = index($$buf,$/,$pos);
    if ($idx < 0) {
	# return rest of it
	*$self->{pos} = $len;



( run in 2.696 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )