1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
{
package Data::Dump::Streamer::_::StringPrinter;
#$Id: Printers.pm 26 2006-04-16 15:18:52Z demerphq $#
$VERSION= "0.1";
my %items;
sub DESTROY { delete $items{$_[0]} }
sub new {
my $class = shift;
my $self = bless \do { my $str = '' }, $class;
$self->print(@_);
return $self;
}
sub print {
my $self = shift;
$items{$self} .= join "", @_;
}
sub value { $items{$_[0]} }
sub string { $_[0]->value() }
1;
}
{
package Data::Dump::Streamer::_::ListPrinter;
$VERSION= "0.1";
my %items;
sub DESTROY { delete $items{$_[0]} }
sub new {
my $class = shift;
my $self = bless \do { my $str = '' }, $class;
$items{$self} = [];
$self->print(@_);
return $self;
}
sub print {
my $self = $items{shift (@_)};
my $str = join ( '', @_ );
if ( !@$self
or $self->[-1] =~ /\n/
or length( $self->[-1] ) > 4000 )
{
push @{$self}, $str;
} else {
$self->[-1] .= $str;
}
}
sub value { @{$items{$_[0]}} }
sub string { join ( '', @{$items{$_[0]}} ) }
1;
}
__END__
|