use Term::ReadLine;
use Moose;
use namespace::clean -except => [ 'meta' ];
+use 5.8.1; # might work with earlier perls but probably not
+
+our $VERSION = '1.002000'; # 1.2.0
with 'MooseX::Object::Pluggable';
my $line = $self->read;
return unless defined($line); # undefined value == EOF
my @ret = $self->eval($line);
- $self->print(@ret);
+ eval {
+ $self->print(@ret);
+ };
+ if ($@) {
+ my $error = $@;
+ eval { $self->print("Error printing! - $error\n"); };
+ }
return 1;
}
sub print {
my ($self, @ret) = @_;
my $fh = $self->out_fh;
+ no warnings 'uninitialized';
print $fh "@ret";
+ print $fh "\n" if $self->term->ReadLine =~ /Gnu/;
}
+=head1 NAME
+
+Devel::REPL - a modern perl interactive shell
+
+=head1 SYNOPSIS
+
+ my $repl = Devel::REPL->new;
+ $repl->load_plugin($_) for qw(History LexEnv);
+ $repl->run
+
+Alternatively, use the 're.pl' script installed with the distribution
+
+ system$ re.pl
+
+=head1 AUTHOR
+
+Matt S Trout - mst (at) shadowcatsystems.co.uk (L<http://www.shadowcatsystems.co.uk/>)
+
+=head1 CONTRIBUTORS
+
+=over 4
+
+=item Stevan Little - stevan (at) iinteractive.com
+
+=item Alexis Sukrieh - sukria+perl (at) sukria.net
+
+=item epitaph
+
+=item mgrimes - mgrimes (at) cpan dot org
+
+=item Shawn M Moore - sartak (at) gmail.com
+
+=back
+
+=head1 LICENSE
+
+This library is free software under the same terms as perl itself
+
+=cut
+
1;