-
-
28 May 2022 03:34:49 UTC
- Distribution: Devel-REPL
- Module version: 1.003029
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (31)
- Testers (360 / 0 / 0)
- Kwalitee
Bus factor: 10- 57.32% Coverage
- License: perl_5
- Perl: v5.8.1
- Activity
24 month- Tools
- Download (60.77KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
and 22 contributors- Matt S Trout - mst (at) shadowcatsystems.co.uk (L<http://www.shadowcatsystems.co.uk/>)
-
Shawn M Moore
-
Chris Marshall
-
Matt S Trout
-
Oliver Gorwits
-
ΧΧΧΧ Χ§ΧΧ'ΧΧ (Yuval Kogman)
-
Arthur Axel 'fREW' Schmidt
-
Alexis Sukrieh
-
Andrew Moore
- epitaph <unknown>
-
Jesse Luehrs
-
Norbert Buchmuller
-
Tomas Doran (t0m)
-
Dagfinn Ilmari MannsΓ₯ker
-
Dave Houston
-
Zakariyya Mughal
-
Ash Berlin
-
Justin Hunter
-
mgrimes
-
naquad
-
Ryan Niebur
-
Stevan Little
- Dependencies
- B::Concise
- Devel::Peek
- File::Spec
- Module::Runtime
- Moose
- Moose::Meta::Role
- Moose::Role
- MooseX::Getopt
- MooseX::Object::Pluggable
- Scalar::Util
- Task::Weaken
- Term::ANSIColor
- Term::ReadLine
- Time::HiRes
- namespace::autoclean
- strict
- warnings
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
Devel::REPL::Profile - Code to execute when re.pl starts
VERSION
version 1.003029
SYNOPSIS
package Devel::REPL::Profile::MyProject; use Moose; use namespace::autoclean; with 'Devel::REPL::Profile'; sub apply_profile { my ($self, $repl) = @_; # do something here } 1;
DESCRIPTION
For particular projects you might well end up running the same commands each time the REPL shell starts up - loading Perl modules, setting configuration, and so on.
A mechanism called profiles exists to let you package and distribute these start-up scripts, as Perl modules.
USAGE
Quite simply, follow the "SYNOPSIS" section above to create a boilerplate profile module. Within the
apply_profile
method, the$repl
variable can be used to run any commands as the user would, within the context of their runningDevel::REPL
shell instance.For example, to load a module, you might have something like this:
sub apply_profile { my ($self, $repl) = @_; $repl->eval('use Carp'); }
As you can see, the
eval
method is used to run any code. The user won't see any output from that, and the code can "safely" die without destroying the REPL shell. The return value ofeval
will be the return value of the code you gave, or else if it died then aDevel::REPL::Error
object is returned.If you want to load a
Devel::REPL
plugin, then use the following method:$repl->load_plugin('Timing');
The
load_plugin
andeval
methods should cover most of what you would want to do before the user has access to the shell. Remember that plugin features are immediately available, so you can load for example theLexEnv
plugin, and then declaremy
variables which the user will have access to.Selecting a Profile
To run the shell with a particular profile, use the following command:
system$ re.pl --profile MyProject
Alternatively, you can set the environment variable
DEVEL_REPL_PROFILE
to MyProject.When the profile name is unqualified, as in the above example, the profile is assumed to be in the
Devel::REPL::Profile::
namespace. Otherwise if you pass something which contains the::
character sequence, it will be loaded as-is.SUPPORT
Bugs may be submitted through the RT bug tracker (or bug-Devel-REPL@rt.cpan.org).
There is also an irc channel available for users of this distribution, at
#devel
onirc.perl.org
.AUTHOR
Matt S Trout - mst (at) shadowcatsystems.co.uk (http://www.shadowcatsystems.co.uk/)
COPYRIGHT AND LICENCE
This software is copyright (c) 2007 by Matt S Trout - mst (at) shadowcatsystems.co.uk (http://www.shadowcatsystems.co.uk/).
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Module Install Instructions
To install Devel::REPL, copy and paste the appropriate command in to your terminal.
cpanm Devel::REPL
perl -MCPAN -e shell install Devel::REPL
For more information on module installation, please visit the detailed CPAN module installation guide.