X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL.pm;h=9ef4c3f930ad84681a34d8b6c6d5c0a8142d5738;hp=2f63c6b6b42c6a97908f374f82948b195e1368d2;hb=071c41fa98659300ff09781a1f2e3570f2473d43;hpb=d13037d5157cf614344b6e60534d4f84da79fa39 diff --git a/lib/Devel/REPL.pm b/lib/Devel/REPL.pm index 2f63c6b..9ef4c3f 100644 --- a/lib/Devel/REPL.pm +++ b/lib/Devel/REPL.pm @@ -5,7 +5,7 @@ use Moose; use namespace::clean -except => [ 'meta' ]; use 5.008001; # backwards compat, doesn't warn like 5.8.1 -our $VERSION = '1.003009'; # 1.3.9 +our $VERSION = '1.003012'; with 'MooseX::Object::Pluggable'; @@ -26,10 +26,16 @@ has 'out_fh' => ( default => sub { shift->term->OUT || \*STDOUT; } ); +has 'exit_repl' => ( + is => 'rw', required => 1, + default => sub { 0 } +); + sub run { my ($self) = @_; while ($self->run_once_safely) { - # keep looping + # keep looping unless we want to exit REPL + last if $self->exit_repl; } } @@ -51,11 +57,11 @@ sub run_once { my ($self) = @_; my $line = $self->read; - return unless defined($line); # undefined value == EOF + return unless defined($line); # undefined value == EOF my @ret = $self->formatted_eval($line); - $self->print(@ret); + $self->print(@ret) unless $self->exit_repl; return 1; } @@ -180,8 +186,8 @@ message will be returned. Here are a few examples: 1 $_ nosuchfunction Compile error: Bareword "nosuchfunction" not allowed while "strict subs" in use at (eval 130) line 5. - - $_ + + $_ In the first example above you see the output of the command (C), if any, and then the return value of the statement (C<1>). Following @@ -208,16 +214,20 @@ exported functions from that module are available for immediate use: (Do you need to predeclare carp?) Compile error: syntax error at (eval 129) line 5, near "carp "I'm dieeeing!\n"" BEGIN not safe after errors--compilation aborted at (eval 129) line 5. - - $_ use Carp - + + $_ use Carp + $_ carp "I'm dieeeing!\n" I'm dieeeing! at /usr/share/perl5/Lexical/Persistence.pm line 327 1 - $_ + $_ + +To quit from the shell, hit C or C. + + MSWin32 NOTE: control keys won't work if TERM=dumb + because readline functionality will be disabled. -To quit from the shell, hit C or C. =head2 Run Control Files @@ -277,6 +287,34 @@ L L +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + =back =head2 Plugins @@ -322,7 +360,7 @@ the following: =item * -L >= 0.64 +L >= 0.74 =item * @@ -330,11 +368,11 @@ L >= 0.0009 =item * -L >= 0.15 +L >= 0.18 =item * -L >= 0.14 +L >= 0.16 =item * @@ -348,6 +386,18 @@ L L +=item * + +L + +=item * + +L + +=item * + +L + =back Optionally, some plugins if installed will require the following modules: @@ -364,10 +414,18 @@ L =item * +L + +=item * + L =item * +L + +=item * + L =item * @@ -410,6 +468,8 @@ Matt S Trout - mst (at) shadowcatsystems.co.uk (L >> +=item Chris Marshall + =back =head1 LICENSE