$ prove -lv t/some_test_file.t
$ prove -lvr t/
-In most cases, 'prove' is entirely sufficent for you to test any
-patches you have.
+In most cases, 'prove' is entirely sufficient for you to test any patches you
+have.
You may need to satisfy some dependencies. The easiest way to satisfy
dependencies is to install the last release -- this is available at
You can learn more about Dist::Zilla at http://dzil.org/.
The code for this distribution is hosted at GitHub. The repository is:
+
https://github.com/p5sagit/Devel-REPL
+
You can submit code changes by forking the repository, pushing your code
-changes to your clone, and then submitting a pull request. Detailed
-instructions for doing that is available here:
+changes to your clone, and then submitting a pull request. Please include a
+suitable end-user-oriented entry in the Changes file describing your change.
+Detailed instructions for doing that is available here:
https://help.github.com/articles/creating-a-pull-request
request to the .mailmap file to contain the correct mapping.
-This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.009 from a
-template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.111.
+This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.015
+from a template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.162.
Revision history for Devel-REPL
+{{ $NEXT }}
+
+1.003029 2022-05-28 03:31:29Z
+ - removed File::HomeDir dependency
+
1.003028 2016-02-16 01:13:08Z
- increase the required version of Data::Dump::Streamer (see RT#105466)
% cpanm Devel::REPL
-If you are installing into a system-wide directory, you may need to pass the
-"-S" flag to cpanm, which uses sudo to install the module:
-
- % cpanm -S Devel::REPL
+If it does not have permission to install modules to the current perl, cpanm
+will automatically set up and install to a local::lib in your home directory.
+See the local::lib documentation (https://metacpan.org/pod/local::lib) for
+details on enabling it in your environment.
## Installing with the CPAN shell
## Manual installation
-As a last resort, you can manually install it. Download the tarball, untar it,
-then build it:
+As a last resort, you can manually install it. If you have not already
+downloaded the release tarball, you can find the download link on the module's
+MetaCPAN page: https://metacpan.org/pod/Devel::REPL
+
+Untar the tarball, install configure prerequisites (see below), then build it:
% perl Makefile.PL
% make && make test
% make install
-If you are installing into a system-wide directory, you may need to run:
+On Windows platforms, you should use `dmake` or `nmake`, instead of `make`.
+
+If your perl is system-managed, you can create a local::lib in your home
+directory to install modules to. For details, see the local::lib documentation:
+https://metacpan.org/pod/local::lib
+
+The prerequisites of this distribution will also have to be installed manually. The
+prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated
+by running the manual build process described above.
+
+## Configure Prerequisites
- % sudo make install
+This distribution requires other modules to be installed before this
+distribution's installer can be run. They can be found under the
+"configure_requires" key of META.yml or the
+"{prereqs}{configure}{requires}" key of META.json.
+
+## Other Prerequisites
+
+This distribution may require additional modules to be installed after running
+Makefile.PL.
+Look for prerequisites in the following phases:
+
+* to run make, PHASE = build
+* to use the module code itself, PHASE = runtime
+* to run tests, PHASE = test
+
+They can all be found in the "PHASE_requires" key of MYMETA.yml or the
+"{prereqs}{PHASE}{requires}" key of MYMETA.json.
## Documentation
Devel-REPL documentation is available as POD.
-You can run perldoc from a shell to read the documentation:
+You can run `perldoc` from a shell to read the documentation:
% perldoc Devel::REPL
+
+For more information on installing Perl modules via CPAN, please see:
+https://www.cpan.org/modules/INSTALL.html
- "Package" refers to the collection of files distributed by the Copyright
Holder, and derivatives of that collection of files created through
- textual modification.
+ textual modification.
- "Standard Version" refers to such a Package if it has not been modified,
or has been modified in accordance with the wishes of the Copyright
- Holder.
+ Holder.
- "Copyright Holder" is whoever is named in the copyright or copyrights for
- the package.
+ the package.
- "You" is you, if you're thinking about copying or distributing this Package.
- "Reasonable copying fee" is whatever you can justify on the basis of media
cost, duplication charges, time of people involved, and so on. (You will
not be required to justify it to the Copyright Holder, but only to the
- computing community at large as a market that must bear the fee.)
+ computing community at large as a market that must bear the fee.)
- "Freely Available" means that no fee is charged for the item itself, though
there may be fees involved in handling the item. It also means that
recipients of the item may redistribute it under the same conditions they
- received it.
+ received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
=head1 VERSION
-version 1.003028
+version 1.003029
=head1 SYNOPSIS
=item *
-L<A comparison of various REPLs|http://shadow.cat/blog/matt-s-trout/mstpan-17/>
+L<A comparison of various REPLs|https://www.shadowcat.co.uk/blog/matt-s-trout/mstpan-17/>
=back
=head1 CONTRIBUTORS
-=for stopwords Karen Etheridge Shawn M Moore Chris Marshall Matt S Trout Oliver Gorwits יובל קוג'מן (Yuval Kogman) Arthur Axel 'fREW' Schmidt Andrew Alexis Sukrieh Tomas Doran (t0m) epitaph Norbert Buchmuller Jesse Luehrs Dave Houston Dagfinn Ilmari Mannsåker Zakariyya Mughal Ryan Niebur Justin Hunter Ash Berlin naquad Stevan Little
+=for stopwords Karen Etheridge Shawn M Moore Chris Marshall Matt S Trout Oliver Gorwits יובל קוג'מן (Yuval Kogman) Arthur Axel 'fREW' Schmidt Alexis Sukrieh Andrew epitaph 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
=over 4
=item *
-Andrew Moore <amoore@cpan.org>
+Alexis Sukrieh <sukria+perl@sukria.net>
=item *
-Alexis Sukrieh <sukria+perl@sukria.net>
+Andrew Moore <amoore@cpan.org>
=item *
-Tomas Doran (t0m) <bobtfish@bobtfish.net>
+epitaph <unknown>
=item *
-epitaph <unknown>
+Jesse Luehrs <doy@tozt.net>
=item *
=item *
-Jesse Luehrs <doy@tozt.net>
+Tomas Doran (t0m) <bobtfish@bobtfish.net>
=item *
-Dave Houston <dhouston@cpan.org>
+Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
=item *
-Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
+Dave Houston <dhouston@cpan.org>
=item *
=item *
-Ryan Niebur <ryan@debian.org>
+Ash Berlin <ash_github@firemirror.com>
=item *
=item *
-Ash Berlin <ash_github@firemirror.com>
+mgrimes <mgrimes@cpan.org>
=item *
=item *
+Ryan Niebur <ryan@debian.org>
+
+=item *
+
Stevan Little <stevan.little@iinteractive.com>
=back
skip = Devel/REPL/Plugin/CompletionDriver/
[@Author::ETHER]
-:version = 0.086
-; instead of using origin = p5sagit@git.shadowcat.co.uk:Devel-REPL.git,
-; use the read-only mirror p5sagit = git@github.com:p5sagit/Devel-REPL.git
-; so we can receive github pull requests
+:version = 0.119 ; for installer -> EUMM dep
server = github
-GithubMeta.remote = p5sagit
+GithubMeta.remote = github
installer = MakeMaker ; Module::Build::Tiny cannot handle dynamic_config => 1
changes_version_columns = 11
surgical_podweaver = 1
-Authority.authority = cpan:PHAYLON
+authority = cpan:PHAYLON
Test::MinimumVersion.max_target_perl = 5.008001
-remove = PodCoverageTests ; XXX TODO
-remove = Test::PodSpelling ; XXX TODO
Test::Compile.module_finder = CoreModules
StaticInstall.dry_run = 0 ; we can safely set this here
+; authordep Pod::Weaver::Section::AllowOverride
+
[MetaResources]
x_IRC = irc://irc.perl.org/#devel-repl
package Devel::REPL;
# ABSTRACT: A modern perl interactive shell
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Term::ReadLine;
use Moose;
=head1 SEE ALSO
=for :list
-* L<A comparison of various REPLs|http://shadow.cat/blog/matt-s-trout/mstpan-17/>
+* L<A comparison of various REPLs|https://www.shadowcat.co.uk/blog/matt-s-trout/mstpan-17/>
=cut
package Devel::REPL::Error;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use namespace::autoclean;
use warnings;
package Devel::REPL::Meta::Plugin;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use namespace::autoclean;
use warnings;
package Devel::REPL::Plugin;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Meta::Plugin;
use Moose::Role ();
package Devel::REPL::Plugin::B::Concise;
# ABSTRACT: B::Concise dumping of expression optrees
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use B::Concise 0.62 ();
package Devel::REPL::Plugin::Colors;
# ABSTRACT: Add color to return values, warnings, and errors
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Term::ANSIColor;
package Devel::REPL::Plugin::Commands;
# ABSTRACT: Generic command creation plugin using injected functions
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Scalar::Util qw(weaken);
package Devel::REPL::Plugin::Completion;
# ABSTRACT: Extensible tab completion
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Scalar::Util 'weaken';
package Devel::REPL::Plugin::CompletionDriver::Globals;
# ABSTRACT: Complete global variables, packages, namespaced functions
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::CompletionDriver::INC;
# ABSTRACT: Complete module names in use and require
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::CompletionDriver::Keywords;
# ABSTRACT: Complete Perl keywords and operators
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::CompletionDriver::LexEnv;
# ABSTRACT: Complete variable names in the REPL's lexical environment
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::CompletionDriver::Methods;
# ABSTRACT: Complete class or object method names
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::CompletionDriver::Turtles;
# ABSTRACT: Complete Turtles-based commands
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::REPL::Plugin::Completion; # die early if cannot load
package Devel::REPL::Plugin::DDC;
# ABSTRACT: Format results with Data::Dumper::Concise
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Data::Dumper::Concise ();
package Devel::REPL::Plugin::DDS;
# ABSTRACT: Format results with Data::Dump::Streamer
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Data::Dump::Streamer ();
package Devel::REPL::Plugin::DumpHistory;
# ABSTRACT: Plugin for Devel::REPL to save or print the history
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::FancyPrompt;
# ABSTRACT: Facilitate user-defined prompts
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::FindVariable;
# ABSTRACT: Finds variables by name
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::History;
# ABSTRACT: Keep track of all input, provide shortcuts !1, !-1
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::Interrupt;
# ABSTRACT: Traps SIGINT to kill long-running lines
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Sys::SigAction qw(set_sig_handler);
package Devel::REPL::Plugin::LexEnv;
# ABSTRACT: Provide a lexical environment for the REPL
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::MultiLine::PPI;
# ABSTRACT: Read lines until all blocks are closed
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use PPI;
package Devel::REPL::Plugin::Nopaste;
# ABSTRACT: #nopaste to upload session's input and output
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Moose::Util::TypeConstraints 'enum';
package Devel::REPL::Plugin::OutputCache;
# ABSTRACT: Remember past results, _ is most recent
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::PPI;
# ABSTRACT: PPI dumping of Perl code
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use PPI;
package Devel::REPL::Plugin::Packages;
# ABSTRACT: Keep track of which package the user is in
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::Peek;
# ABSTRACT: L<Devel::Peek> plugin for L<Devel::REPL>.
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Devel::Peek qw(Dump);
package Devel::REPL::Plugin::ReadLineHistory;
# ABSTRACT: Integrate history with the facilities provided by L<Term::ReadLine>
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
-use File::HomeDir;
use File::Spec;
use namespace::autoclean;
my $hist_file = $ENV{PERLREPL_HISTFILE} ||
- File::Spec->catfile(File::HomeDir->my_home, '.perlreplhist');
+ File::Spec->catfile(($^O eq 'MSWin32' && "$]" < 5.016 ? $ENV{HOME} || $ENV{USERPROFILE} : (<~>)[0]), '.perlreplhist');
# HISTLEN should probably be in a config file to stop people accidentally
# truncating their history if they start the program and forget to set
package Devel::REPL::Plugin::Refresh;
# ABSTRACT: Reload libraries with Module::Refresh
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::ShowClass;
# ABSTRACT: Dump classes initialized with Class::MOP
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use namespace::autoclean;
package Devel::REPL::Plugin::Timing;
# ABSTRACT: Display execution times
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Time::HiRes 'time';
package Devel::REPL::Plugin::Turtles;
# ABSTRACT: Generic command creation using a read hook
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Devel::REPL::Plugin;
use Scalar::Util qw(reftype);
package Devel::REPL::Profile;
# ABSTRACT: Code to execute when re.pl starts
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose::Role;
requires 'apply_profile';
package Devel::REPL::Profile::Default;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use namespace::autoclean;
package Devel::REPL::Profile::Minimal;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use namespace::autoclean;
package Devel::REPL::Profile::Standard;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use namespace::autoclean;
package Devel::REPL::Script;
-our $VERSION = '1.003028';
+our $VERSION = '1.003030';
use Moose;
use Devel::REPL;
-use File::HomeDir;
use File::Spec;
use Module::Runtime 'use_module';
use namespace::autoclean;
# plain name => ~/.re.pl/${rc_file}
if ($rc_file !~ m!/!) {
- $rc_file = File::Spec->catfile(File::HomeDir->my_home, '.re.pl', $rc_file);
+ $rc_file = File::Spec->catfile(($^O eq 'MSWin32' && "$]" < 5.016 ? $ENV{HOME} || $ENV{USERPROFILE} : (<~>)[0]), '.re.pl', $rc_file);
}
$self->apply_script($rc_file);