$ cd $HOME
$ mkdir localperl
$ cd localperl
$ wget https://www.cpan.org/src/5.0/perl-5.38.0.tar.gz
$ sha256sum perl-5.38.0.tar.gz
213ef58089d2f2c972ea353517dc60ec3656f050dcc027666e118b508423e517 perl-5.38.0.tar.gz
# (eyeball this to verify it matches the value displayed at:
# https://www.cpan.org/src/5.0/perl-5.38.0.tar.gz.sha256.txt)
$ tar -xzf perl-5.38.0.tar.gz
$ cd perl-5.38.0
$ ./Configure -des -Dprefix=$HOME/localperl
$ make 2>&1 | tee make.tmp
$ make test 2>&1 | tee test.tmp
$ make install 2>&1 | tee install.tmp
$ type perl
perl is /usr/bin/perl
$ export PATH=$HOME/localperl/bin:$PATH
$ type perl
perl is $HOME/localperl/bin/perl
$ perl -v
This is perl 5, version 38, subversion 0 (v5.38.0) built for x86_64-linux
...
####
$ cpan App::cpanminus 2>&1 | tee inst-cpanminus.tmp
##
##
$ corelist Module::Signature
Module::Signature was not in CORE (or so I think)
$ corelist Digest::SHA
Digest::SHA was first released with perl v5.9.3
$ cpanm --from https://www.cpan.org/ Module::Signature 2>&1 | tee ModuleSignature.tmp
--> Working on Module::Signature
Fetching https://www.cpan.org/authors/id/A/AU/AUDREYT/Module-Signature-0.88.tar.gz ... OK
Configuring Module-Signature-0.87 ... OK
==> Found dependencies: IPC::Run
--> Working on IPC::Run
Fetching https://www.cpan.org/authors/id/T/TO/TODDR/IPC-Run-20220807.0.tar.gz ... OK
Configuring IPC-Run-20220807.0 ... OK
Building and testing IPC-Run-20220807.0 ... OK
Successfully installed IPC-Run-20220807.0
Building and testing Module-Signature-0.87 ... OK
Successfully installed Module-Signature-0.87
2 distributions installed
##
##
$ cpanm --from https://www.cpan.org/ --verify Roman 2>&1 | tee Roman.tmp
--> Working on Roman
Fetching https://www.cpan.org/authors/id/C/CH/CHORNY/Roman-1.24.tar.gz ... OK
Fetching https://www.cpan.org/authors/id/C/CH/CHORNY/CHECKSUMS ... OK
Configuring Roman-1.24 ... OK
Building and testing Roman-1.24 ... OK
Successfully installed Roman-1.24
1 distribution installed
##
##
$ cpanm --uninstall Roman
Roman contains the following files:
$HOME/localperl/lib/site_perl/5.38.0/Roman.pm
$HOME/localperl/man/man3/Roman.3
Are you sure you want to uninstall Roman? [y] y
Unlink: $HOME/localperl/lib/site_perl/5.38.0/Roman.pm
Unlink: $HOME/localperl/man/man3/Roman.3
Unlink: $HOME/localperl/lib/site_perl/5.38.0/x86_64-linux/auto/Roman/.packlist
Successfully uninstalled Roman
##
##
# Use my locally built perl 5.38.0
PATH="$HOME/localperl/bin:$PATH"