Perl (Homebrew)¶
On peut installer une version plus récente de Perl avec Homebrew:
$ brew install perl
$ brew info perl
zsh: correct 'perl' to 'perl5' [nyae]? n
perl: stable 5.30.0 (bottled), HEAD
Highly capable, feature-rich programming language
https://www.perl.org/
/usr/local/Cellar/perl/5.30.0 (2,440 files, 61.8MB) *
Poured from bottle on 2019-08-04 at 13:32:46
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/perl.rb
==> Options
--HEAD
Install HEAD version
==> Caveats
By default non-brewed cpan modules are installed to the Cellar. If you wish
for your modules to persist across updates we recommend using `local::lib`.
You can set that up like this:
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
$ which perl
/usr/local/bin/perl
$ perl -v
This is perl 5, version 30, subversion 0 (v5.30.0) built for darwin-thread-multi-2level
Copyright 1987-2019, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
cpan:¶
cpan gère les modules Perl.
$ cpan
Loading internal logger. Log::Log4perl recommended for better logging
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] yes
Autoconfiguration complete.
commit: wrote '/Users/bruno/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
To fix enter> install Term::ReadLine::Perl
cpan shell -- CPAN exploration and modules installation (v2.22)
Enter 'h' for help.
Sans argument, la commande cpan ouvre un shell:
$ cpan
Loading internal logger. Log::Log4perl recommended for better logging
cpan shell -- CPAN exploration and modules installation (v2.27)
Enter 'h' for help.
cpan[1]> h
cpan[1]> h
Display Information (ver 2.27)
command argument description
a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules
i WORD or /REGEXP/ about any of the above
ls AUTHOR or GLOB about files in the author's directory
(with WORD being a module, bundle or author name or a distribution
name of the form AUTHOR/DISTRIBUTION)
Download, Test, Make, Install...
get download clean make clean
make make (implies get) look open subshell in dist directory
test make test (implies make) readme display these README files
install make install (implies test) perldoc display POD documentation
Upgrade installed modules
r WORDs or /REGEXP/ or NONE report updates for some/matching/all
upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules
Pragmas
force CMD try hard to do command fforce CMD try harder
notest CMD skip testing
Other
h,? display this menu ! perl-code eval a perl command
o conf [opt] set and query options q quit the cpan shell
reload cpan load CPAN.pm again reload index load newer indices
autobundle Snapshot recent latest CPAN uploads
La commande cpan peut aussi s'utiliser avec arguments:
Avec Perl installé via homebrew, les modules sont installés dans Cellar (Installing /usr/local/Cellar/perl/5.30.0/lib/perl5/site_perl/5.30.0/CPAN/DistnameInfo.pm
). Ils sont donc perdu à chaque mise-à-jour de Perl.
Il est donc conseillé d'utiliser local::lib
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
# les dossiers suivants sont crées:
# $HOME/perl5/bin/
# $HOME/perl5/lib/
#
# à côté de $HOME/perl5/perlbrew/
Les modules sont alors installés ici Installing /Users/bruno/perl5/lib/perl5/Log/Log4perl.pm
Info sur un module: cpan -D <module>
¶
$ cpan -D CPAN::DistnameInfo
Reading '/Users/bruno/.cpan/Metadata'
Database was generated on Tue, 17 Dec 2019 07:29:02 GMT
CPAN::DistnameInfo
-------------------------------------------------------------------------
CPAN: Module::CoreList loaded ok (v5.20190522)
(no description)
G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz
/usr/local/Cellar/perl/5.30.0/lib/perl5/site_perl/5.30.0/CPAN/DistnameInfo.pm
Installed: 0.12
CPAN: 0.12 up to date
Graham Barr (GBARR)
gbarr@pobox.com
Liste des modules installés: cpan -l
¶
$ cpan -l
Spiffy 0.46
YAML 1.29
CPAN::DistnameInfo 0.12
App::pmuninstall 0.30
Test::YAML 1.07
Désintaller un module:¶
Il n'y a pas de commande prévue pour ça.
On peut installer pmuninstall.
$ cpan -i App::pmuninstall
Puis pour désinstaller:
$ pm-uninstall -v App::cpnaminus
Modules mis-à-jour:¶
On peut installer cpanoutdated
$ cpan -i App::cpanoutdated
et voir les modules 'outdated'
$ cpan-outdated -p
Compress::Raw::Bzip2
Compress::Raw::Zlib
Compress::Zlib
DB_File
$ cpan-outdated
P/PM/PMQS/Compress-Raw-Bzip2-2.093.tar.gz
P/PM/PMQS/Compress-Raw-Zlib-2.093.tar.gz
P/PM/PMQS/IO-Compress-2.093.tar.gz
P/PM/PMQS/DB_File-1.852.tar.gz
Il est recommandé d'installer les modules suivants:
-
Term::ReadLine::Perl (réclamé par le shell cpan)
-
CPAN::DistnameInfo (réclamé par l'installeur de module)
- Log::Log4perl