1package Stream::Buffered::PerlIO; 2use strict; 3use warnings; 4use base 'Stream::Buffered'; 5 6sub new { 7 my $class = shift; 8 bless { buffer => '' }, $class; 9} 10 11sub print { 12 my $self = shift; 13 $self->{buffer} .= "@_"; 14} 15 16sub size { 17 my $self = shift; 18 length $self->{buffer}; 19} 20 21sub rewind { 22 my $self = shift; 23 my $buffer = $self->{buffer}; 24 open my $io, "<", \$buffer; 25 bless $io, 'FileHandle'; # This makes $io work as FileHandle under 5.8, .10 and .11 :/ 26 return $io; 27} 28 291; 30