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=2c839a79dab1e79f906103103974783f9e4864d9;hp=cb36a93a01544dc67ef7370af2bd40660b21971b;hb=796cd7ec80de14e45ca8221d545aceb7b9bc0b71;hpb=a2a19b0aa298b778c59d7d30e56d509725a7da85 diff --git a/lib/Devel/REPL/Overview.pod b/lib/Devel/REPL/Overview.pod index cb36a93..2c839a7 100644 --- a/lib/Devel/REPL/Overview.pod +++ b/lib/Devel/REPL/Overview.pod @@ -1,3 +1,5 @@ +=pod + =head1 NAME Devel::REPL::Overview - overview of Devel::REPL. @@ -6,7 +8,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 +32,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 +130,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 +148,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 +164,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,25 +215,23 @@ 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 ### keep those exports/imports out of our namespace - use namespace::clean -except => [ 'meta' ]; + use namespace::autoclean; with 'Devel::REPL::Profile'; ## seem perldoc Muse @@ -246,18 +243,30 @@ 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 + +=for :list +* L +* L +* L +* L -L, L, L +=cut