ArchWiki / Perl
ArchWiki / Perl
From Wikipedia:
Perl is a high-level, general-purpose, interpreted, dynamic programming language.
Perl borrows features from other programming languages including C, sh, AWK, and sed. It provides text processing facilities without the arbitrary data-length limits of many contemporary Unix command line tools.
Perl gained widespread popularity in the mid-1990s as a CGI scripting language, in part due to its powerful regular expression and string parsing abilities.
Installation
Commands
The Perl language interpreter:
$ perlPerl bug reporting:
$ perlbugLookup the Perl documentation in POD format:
$ perldocSend the Perl authors and maintainers a thank you message:
$ perlthanksPackage management
There are many ways to install Perl packages on Arch Linux. The majority of Perl modules are distributed over CPAN, the Comprehensive Perl Authors Network.
Arch repositories
A number of popular CPAN modules are available in the official repositories and AUR. This is the preferred way to install system-wide packages, and the only method officially supported on Arch Linux.
CPAN packages
Since Perl packages in the Arch repositories can be out-of-date or missing, one may be tempted to install them with installers like cpan or cpanm as root. However, this is not recommended because it can lead to untracked modules conflicting with the system packages.
One may also write PKGBUILDs and install them with makepkg/pacman, though tedious.
A safer approach is to use perl-local-lib, which lets you install modules locally (by default in ~/perl5) while still using the system perl. https://metacpan.org/pod/local::lib local::lib sets up environment variables that make perl look in a particular directory for libraries, and install modules there.
There are also tools that generate PKGBUILDs for CPAN modules: see Creating packages#PKGBUILD generators.
CPAN installers
Installers download, build and install Perl modules from CPAN.
cpanminus
cpanminus is a lightweight, zero configuration module installer that supports local::lib and perlbrew/plenv. It is typically the recommended installer over the more verbose cpan tool https://learn.perl.org/installing/unix_linux.html https://www.cpan.org/modules/INSTALL.html.
By default, it installs modules to the site_perl directories when running as root (discouraged), otherwise to ~/perl5 https://metacpan.org/pod/App::cpanminus#Where-does-this-install-modules-to?-Do-I-need-root-access?.
Usage examples
Install modules:
$ cpanm Regexp::DebuggerUninstall modules:
$ cpanm --uninstall Regexp::DebuggerCheck outdated modules (requires cpan-outdated):
$ cpanm App::cpanoutdated
$ cpan-outdated -pUpdate modules:
$ cpan-outdated | cpanmSee the cpanm documentation for more examples.
CPAN.pm
https://metacpan.org/pod/CPAN CPAN.pm is a Perl core module. It can be used interactively from the shell or in Perl scripts.
Configuring cpan
Before first use, the module needs to be configured. This is done interactively from the shell with:
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes]$ cpanAutomated configuration will suit most users. Answering yes, the configuration will continue with:
To install modules, you need to configure a local Perl library directory or
escalate your privileges. CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available). You may also
resolve this problem manually if you need to customize your setup.
What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
[local::lib]To install modules in your home directory, choose local::lib, which installs additional modules. To install them system-wide, choose sudo (discouraged), which ends the configuration:
Autoconfiguration complete.
commit: wrote '/home/username/.cpan/CPAN/MyConfig.pm'Choosing not to use automated configuration allows the user to set cpan options interactively in the shell. The table below shows some option names with a brief description and default value. More detailed information is displayed for each option during configuration.The configuration file $HOME/.cpan/CPAN/MyConfig.pm can be edited with your text editor of choice.
Usage examples
To install modules, pass them as parameters to cpan:
$ cpan Acme::MetaSyntacticThe following examples are in the cpan interactive shell, started with:
$ cpanDisplay module information:
Reading '/home/username/.cpan/Metadata'
Database was generated on Fri, 08 Dec 2017 02:17:03 GMT
Module id = Acme::MetaSyntactic
CPAN_USERID BOOK (Philippe Bruhat (BooK) <book@cpan.org>)
CPAN_VERSION 1.014
CPAN_FILE B/BO/BOOK/Acme-MetaSyntactic-1.014.tar.gz
INST_FILE (not installed)cpan[1]> m Acme::MetaSyntacticView the README:
Acme::MetaSyntactic - Themed metasyntactic variables
DESCRIPTION
When writing code examples, it's always easy at the beginning:
my $foo = "bar";
$foo .= "baz"; # barbaz
...cpan[2]> readme Acme::MetaSyntacticInstall a module:
cpan[3]> install Acme::MetaSyntacticRe-run configuration:
cpan[1]> o conf initPerl development environment
perlbrew and plenv automate the installation and management of multiple perl versions under your home directory, allowing you to install modules locally without conflicting with the system perl.
See their documentation https://metacpan.org/pod/App::perlbrew https://github.com/tokuhirom/plenv#readme for more details.
Development tools
See also List of recommended Perl modules.
REPLs
Debugging
Linters
Formatters
Testing
Widget bindings
The following widget toolkit bindings are available:
To use these with Perl, you may need to install the associated widget kits.
IDE support
Development in JetBrains IDE
If you are using a JetBrains IDE, for example IntelliJ Idea, install perl-bundle-camelcade. Then install Perl plugin. Then go to the Settings > Languages & Frameworks > Perl5. In the Perl 5 Interpreter field select Add System Perl. Now you can make a run/debug configuration for your project and start debugging.