.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "App::perlbrew 3pm"
.TH App::perlbrew 3pm 2023-10-23 "perl v5.38.0" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
App::perlbrew \- Manage perl installations in your "$HOME"
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 2
\& # Installation
\& curl \-L https://install.perlbrew.pl | bash
\&
\& # Initialize
\& perlbrew init
\&
\& # See what is available
\& perlbrew available
\&
\& # Install some Perls
\& perlbrew install 5.32.1
\& perlbrew install perl\-5.28.3
\& perlbrew install perl\-5.33.6
\&
\& # See what were installed
\& perlbrew list
\&
\& # Swith to an installation and set it as default
\& perlbrew switch perl\-5.32.1
\&
\& # Temporarily use another version only in current shell.
\& perlbrew use perl\-5.28.3
\& perl \-v
\&
\& # Turn it off and go back to the system perl.
\& perlbrew off
\&
\& # Turn it back on with \*(Aqswitch\*(Aq, or \*(Aquse\*(Aq
\& perlbrew switch perl\-5.32.1
\& perlbrew use perl\-5.32.1
\&
\& # Exec something with all perlbrew\-ed perls
\& perlbrew exec \-\- perl \-E \*(Aqsay $]\*(Aq
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
perlbrew is a program to automate the building and installation of perl in an
easy way. It provides multiple isolated perl environments, and a mechanism
for you to switch between them.
.PP
Everything are installed unter \f(CW\*(C`~/perl5/perlbrew\*(C'\fR. You then need to include a
bashrc/cshrc provided by perlbrew to tweak the PATH for you. You then can
benefit from not having to run \f(CW\*(C`sudo\*(C'\fR commands to install
cpan modules because those are installed inside your \f(CW\*(C`HOME\*(C'\fR too.
.PP
For the documentation of perlbrew usage see perlbrew command
on MetaCPAN , or by running \f(CW\*(C`perlbrew help\*(C'\fR,
or by visiting perlbrew's official website . The following documentation
features the API of \f(CW\*(C`App::perlbrew\*(C'\fR module, and may not be remotely
close to what your want to read.
.SH INSTALLATION
.IX Header "INSTALLATION"
It is the simplest to use the perlbrew installer, just paste this statement to
your terminal:
.PP
.Vb 1
\& curl \-L https://install.perlbrew.pl | bash
.Ve
.PP
Or this one, if you have \f(CW\*(C`fetch\*(C'\fR (default on FreeBSD):
.PP
.Vb 1
\& fetch \-o\- https://install.perlbrew.pl | sh
.Ve
.PP
After that, \f(CW\*(C`perlbrew\*(C'\fR installs itself to \f(CW\*(C`~/perl5/perlbrew/bin\*(C'\fR, and you
should follow the instruction on screen to modify your shell rc file to put it
in your PATH.
.PP
The installed perlbrew command is a standalone executable that can be run with
system perl. The minimum required version of system perl is 5.8.0, which should
be good enough for most of the OSes these days.
.PP
A fat-packed version of patchperl is also installed to
\&\f(CW\*(C`~/perl5/perlbrew/bin\*(C'\fR, which is required to build old perls.
.PP
The directory \f(CW\*(C`~/perl5/perlbrew\*(C'\fR will contain all install perl executables,
libraries, documentations, lib, site_libs. In the documentation, that directory
is referred as \f(CW\*(C`perlbrew root\*(C'\fR. If you need to set it to somewhere else because,
say, your \f(CW\*(C`HOME\*(C'\fR has limited quota, you can do that by setting \f(CW\*(C`PERLBREW_ROOT\*(C'\fR
environment variable before running the installer:
.PP
.Vb 2
\& export PERLBREW_ROOT=/opt/perl5
\& curl \-L https://install.perlbrew.pl | bash
.Ve
.PP
As a result, different users on the same machine can all share the same perlbrew
root directory (although only original user that made the installation would
have the permission to perform perl installations.)
.PP
You may also install perlbrew from CPAN:
.PP
.Vb 1
\& cpan App::perlbrew
.Ve
.PP
In this case, the perlbrew command is installed as \f(CW\*(C`/usr/bin/perlbrew\*(C'\fR or
\&\f(CW\*(C`/usr/local/bin/perlbrew\*(C'\fR or others, depending on the location of your system
perl installation.
.PP
Please make sure not to run this with one of the perls brewed with
perlbrew. It's the best to turn perlbrew off before you run that, if you're
upgrading.
.PP
.Vb 2
\& perlbrew off
\& cpan App::perlbrew
.Ve
.PP
You should always use system cpan (like /usr/bin/cpan) to install
\&\f(CW\*(C`App::perlbrew\*(C'\fR because it will be installed under a system PATH like
\&\f(CW\*(C`/usr/bin\*(C'\fR, which is not affected by perlbrew \f(CW\*(C`switch\*(C'\fR or \f(CW\*(C`use\*(C'\fR command.
.PP
The \f(CW\*(C`self\-upgrade\*(C'\fR command will not upgrade the perlbrew installed by cpan
command, but it is also easy to upgrade perlbrew by running \f(CW\*(C`cpan App::perlbrew\*(C'\fR
again.
.SH "PROJECT DEVELOPMENT"
.IX Header "PROJECT DEVELOPMENT"
perlbrew project uses github
for issue
tracking. Issues sent to these two systems will eventually be reviewed
and handled. To participate, you need a github account.
.PP
Please briefly read the short instructions about how to get your work
released to CPAN:
.PP
.SH AUTHOR
.IX Header "AUTHOR"
Kang-min Liu \f(CW\*(C`\*(C'\fR
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright (c) 2023 Kang-min Liu \f(CW\*(C`\*(C'\fR.
.SH LICENCE
.IX Header "LICENCE"
The MIT License
.SH "DISCLAIMER OF WARRANTY"
.IX Header "DISCLAIMER OF WARRANTY"
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR, OR CORRECTION.
.PP
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.