X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FOverview.pod;h=bf657dea4d41fa098342d5094e0001bca3b026f9;hp=2e643bf709daa2034cdf8ebfd44c1fdabaf6891f;hb=5bcac6610ff5818b493b799072e47f3ebc8f1431;hpb=aa8b764738156914d48d182ee0706e4c3d4e5c99 diff --git a/lib/Devel/REPL/Overview.pod b/lib/Devel/REPL/Overview.pod index 2e643bf..bf657de 100644 --- a/lib/Devel/REPL/Overview.pod +++ b/lib/Devel/REPL/Overview.pod @@ -6,7 +6,7 @@ Devel::REPL::Overview - overview of Devel::REPL. =head2 What is a console? How it can assist you? - Most modern languages have consoles. Console is an interactive tool +Most modern languages have consoles. The console is an interactive tool that evaluates your input while you type it. It gives you several advantages: @@ -30,16 +30,13 @@ You can even call a console in your script and play around in script's context =back - -For Ruby it would be irb, for Python is... python byitself and for perl... +For Ruby it would be irb, for Python is... python by itself and for perl... and there was nothing for perl (except that ugly perl -d -e "" and several -failed projects) until Devel::REPL was written by Matt S Trout (a.k.a. mst) +failed projects) until L was written by Matt S Trout (a.k.a. mst) from ShadowCatSystems L. - =head2 Devel::REPL - the Perl console - REPL stands for Read, Evaluate, Print, Loop. Lets install and try it. @@ -131,15 +128,15 @@ An example session: =head2 Control files a.k.a. I don't want to type it every time -Devel::REPL has control files feature. Control files are +L has a control files feature. Control files are evaluated on session start in the same way as you would -type them manually in console. +type them manually in the console. -Default control file is located at `$HOME/.re.pl/repl.rc` . +The default control file is located at F<$HOME/.re.pl/repl.rc>. You can store there any statements you would normally type in. -I.e. my `$HOME/.re.pl/repl.rc` has next lines: +I.e. my F<$HOME/.re.pl/repl.rc> has next lines: use feature 'say'; # to don't write \n all the time @@ -149,12 +146,12 @@ I.e. my `$HOME/.re.pl/repl.rc` has next lines: sub pp { print Data::Dumper->Dump([@_]) } You can have multiple control files and they can be anywhere in the -file system. To make re.pl use some rc-file other than repl.rc +file system. To make F use some rc-file other than F, call it like this: $ re.pl --rcfile /path/to/your/rc.file -If your rc-file is in `$HOME/.re.pl` directory, you can omit path: +If your rc-file is in F<$HOME/.re.pl> directory, you can omit the path: $ re.pl --rcfile rc.file @@ -165,39 +162,39 @@ and you don't want to type path, you can: =head2 I want it to bark, fly, jump and swim! or Plugins -Plugins extend functionality and change behavor of Devel::REPL. +Plugins extend functionality and change behavior of Devel::REPL. Bundled plugins are: =over 2 =item * -Devel::REPL::Plugin::History +L No comments. Simply history. =item * -Devel::REPL::Plugin::!LexEnv +L Provides a lexical environment for the Devel::REPL. =item * -Devel::REPL::Plugin::DDS +L Formats return values with Data::Dump::Streamer module. =item * -Devel::REPL::Plugin::Packages +L Keeps track of which package your're in. =item * -Devel::REPL::Plugin::Commands +L Generic command creation plugin using injected functions. =item * -Devel::REPL::Plugin::MultiLine::PPI +L Makes Devel::REPL read your input until your block is finished. What does this means: you can type a part of a block on one line and second part on another: @@ -216,20 +213,18 @@ Devel::REPL::Plugin::MultiLine::PPI but this *doesn't* mean you can print sub name or identifier on several lines. Don't do that! It won't work. - =back There are lots of contributed plugins you can find at CPAN. =head1 Profiles -If plugins change and extend functionality of Devel::REPL, profiles +If plugins change and extend functionality of L, profiles are changing your environment (loaded plugins, constants, subs and etc.). -There's only one bundled profile called `Devel::REPL::Profile::Default`, lets -take a look at it: +For example, the Minimal profile, L: - package Devel::REPL::Profile::Default; + package Devel::REPL::Profile::Minimal; use Moose; ### advanced OOP system for Perl @@ -246,18 +241,44 @@ take a look at it: ### it is called on profile activation sub apply_profile { my ($self, $repl) = @_; - ### $self - no comments, $repl - current instance of Devel::REPL + ### $self - no comments, $repl - current instance of Devel::REPL $repl->load_plugin($_) for $self->plugins; ### load our plugins } 1; -At the moment there are no profiles on CPAN. Mostly you'll use control files. -To enable some profile use --profile switch: +There is also the L profile, which contains a number of optional (yet +very useful) features. + +To enable some profile use the C<--profile> switch: $ re.pl --profile SomeProfile -=head1 See Also +Alternatively, you can set the environment variable C to +C, or set the C key in your C (see +L for more information). + +=head1 SEE ALSO + +=over 2 + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=back -L, L, L +=cut