shell bypass 403
{
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__