Perl
====

Enables local [Perl][1] module installation on macOS and defines aliases.

Local Module Installation
-------------------------

Perl versions older than 5.14 do not support the local installation of Perl
modules natively. This module allows for local installation of Perl modules on
macOS in *~/Library/Perl/5.12* by altering the environment.

### Usage

For Perl versions older than 5.14, install *local::lib*.

```console
curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
tar xvf local-lib-1.008004.tar.gz
cd local-lib-1.008004
perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
make && make test && make install
```

Install *cpanminus*:

```console
curl -L http://cpanmin.us | perl - --self-upgrade
```

Perlbrew
--------

An alternative to the above is to use [Perlbrew][2], which allows for the
management of multiple, isolated Perl installations in the home directory.

plenv
-----

Yet another alternative is [plenv][3]. This is inspired from rbenv and enables
switching between multiple binary installations.

The subcommands of plenv is similar with rbenv.

Aliases
-------

### General

  - `pl` is short for `perl`.
  - `pld` looks up Perl documentation (`perldoc`).
  - `ple` executes a one line program in a loop (`perl -wlne`).

### Perlbrew

  - `plb` manages Perl environments.
  - `plba` lists available Perl versions.
  - `plbi` installs a Perl version.
  - `plbl` lists installed Perl versions.
  - `plbo` temporarily turns off Perlbrew.
  - `plbO` turns off Perlbrew.
  - `plbs` switches to a Perl version.
  - `plbu` uninstalls a Perl version.
  - `plbx` temporarily sets the Perl version to use.

### plenv

  - `plv` manages Perl environments.
  - `plvc` List all available plenv commands.
  - `plvl` Set or show the local application-specific Perl version.
  - `plvg` Set or show the global Perl version.
  - `plvs` Set or show the shell-specific Perl version.
  - `plvi` Install a Perl version using the perl-build plugin.
  - `plvu` Uninstall a specific Perl version.
  - `plvr` Rehash plenv shims (run this after installing executables).
  - `plvv` Show the current Perl version and its origin.
  - `plvV` List all Perl versions available to plenv.
  - `plvw` Display the full path to an executable.
  - `plvW` List all Perl versions that contain the given executable.
  - `plvm` List cpan modules in current perl.
  - `plvM` Migrate cpan modules from other version.
  - `plvI` Install cpanm.

Functions
---------

  - `perl-info` exposes information about the Perl environment via the
    `$perl_info` associative array.

Theming
-------

To display the name of the current Perl version in a prompt, define the
following style in the `prompt_name_setup` function.

```sh
# %v - perl version.
zstyle ':prezto:module:perl:info:version' format 'version:%v'
```

Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call
`perl-info` in the `prompt_name_precmd` hook function.

Authors
-------

*The authors of this module should be contacted via the [issue tracker][4].*

  - [Sorin Ionescu](https://github.com/sorin-ionescu)

[1]: http://www.perl.org
[2]: http://perlbrew.pl
[3]: https://github.com/tokuhirom/plenv
[4]: https://github.com/sorin-ionescu/prezto/issues