use strict;
use warnings;
package Devel::REPL::Plugin::DDS;
BEGIN {
$Devel::REPL::Plugin::DDS::AUTHORITY = 'cpan:PHAYLON';
}
$Devel::REPL::Plugin::DDS::VERSION = '1.003026';
use Devel::REPL::Plugin;
use Data::Dump::Streamer ();
around 'format_result' => sub {
my $orig = shift;
my $self = shift;
my @to_dump = @_;
my $out;
if (@to_dump > 1 || ref $to_dump[0]) {
if (@to_dump == 1 && overload::Method($to_dump[0], '""')) {
$out = "@to_dump";
} else {
my $dds = Data::Dump::Streamer->new;
$dds->Freezer(sub { "$_[0]"; });
$dds->Data(@to_dump);
$out = $dds->Out;
}
} else {
$out = $to_dump[0];
}
$self->$orig($out);
};
1;
__END__
=head1 NAME
Devel::REPL::Plugin::DDS - Format results with Data::Dump::Streamer
=head1 VERSION
version 1.003026
=head1 SYNOPSIS
# in your re.pl file:
use Devel::REPL;
my $repl = Devel::REPL->new;
$repl->load_plugin('DDS');
$repl->run;
# after you run re.pl:
$ map $_*2, ( 1,2,3 )
$ARRAY1 = [
2,
4,
6
];
$
=cut