====== Perl ====== ===== List Perl libraries locations ===== [root@lnx80 ~]# perl -e 'print join("\n",@INC)' /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 ===== List Perl libraries ===== # perl -MFile::Find=find -MFile::Spec::Functions -Tlwe 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' # perldoc -l DBI /usr/opt/perl5/lib/site_perl/5.28.1/aix-thread-multi/DBI.pm ===== Perl modules ===== [root@fedora ~]# pmall Encode (3.19) - character encodings in Perl Clone (0.46) - recursively copy Perl datatypes Storable (3.26) - persistence for Perl data structures Cwd (3.84) - get pathname of current working directory DBI (1.643) - Database independent interface for Perl Socket (2.036) - networking constants and support functions Term::ReadKey (2.38) - A perl module for simple terminal control Sub::Util (1.63) - A selection of utility subroutines for subs and CODE references IO::Compress::Brotli (0.004001) - Write Brotli buffers/streams IO::Uncompress::Brotli (0.004001) - Read Brotli buffers/streams Digest::SHA (6.04) - Perl extension for SHA-1/224/256/384/512 ... ==== cpan proxy ==== root@aixtest:/root > /opt/freeware/bin/cpan o conf init /proxy/ Your ftp_proxy? [] w.x.y.z: Your http_proxy? [] w.x.y.z: http://10.10.10.10:8080/ Your no_proxy? [] w.x.y.z: Proxy userID ? Proxy password ? o conf commit root@aixtest:/root > perl –MCPAN –e'install ' Or root@aixtest:/root > cpan Devel::PPPort ==== CPAN error while install modules ==== Dependencies between modules can be found in CPAN site ==== CPAN error ==== Error downloading with HTTP::Tiny: Not a CODE reference Set the proxy also export http_proxy="http://user:pass@proxyserver:8080" export https_proxy="http://user:pass@proxyserver:8080" export ftp_proxy="http://user:pass@proxyserver:8080" https://community.ibm.com/community/user/power/blogs/jan-harris1/2022/03/21/aix-open-source-support-tips ==== CPAN coredumps on AIX ==== Answer AIX does not set maxdata because it causes issues for AIX Perl-based commands. One of the following solutions can usually resolve the issue: 1) Use the 64-bit module 2) export LDR_CNTRL=MAXDATA=0x80000000@DSA 3) Use a perl.rpm version (which is recommended for reasons that are listed in the AIX Perl Updates and Support for perl.rte technote), then use ldedit to permanently set the maxdata value # ldedit -b maxdata=0x80000000 "path to perl.rpm Perl binary" ==== CPAN install modules offline ==== Download Perl module Go to CPAN Search website and search for the module that you wish to download. In this example, let us search, download and install XML::Parser Perl module. I have downloaded the XML-Parser-2.36.tar.gz to /home/download # cd /home/download # gzip -d XML-Parser-2.36.tar.gz # tar xvf XML-Parser-2.36.tar # cd XML-Parser-2.36 # perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for XML::Parser::Expat Writing Makefile for XML::Parser # make # make test # make install ==== CPAN repository offline ==== https://www.cpan.org/modules/01modules.index.html