Estou tentando executar um script perl em uma máquina usando CentOS Linux 7. Tenho perl 5.36.1. O script usa um programa chamado polymake que possui sua própria cópia do perl. Não posso modificar essa cópia do perl. Posso instalar módulos para minha cópia do perl usando cpan.
Usando cpan, instalei o módulo Algorithm::Combinatorics
$ cpanm Algorithm::Combinatorics
Algorithm::Combinatorics is up to date. (0.27)
Em "~/perl5/lib/perl5/Algorithm", existe um arquivo chamado "Combinatorics.pm".
Quando executo o seguinte código
#!/usr/bin/perl
use lib '~/perl5/lib/perl5/Algorithm';
use lib '~/perl5/lib/perl5/';
use Combinatorics;
Recebo a mensagem de erro
Can't locate Combinatorics.pm in @INC (you may need to install the Combinatorics module)
(@INC contains: ~/perl5/lib/perl5/ ~/perl5/lib/perl5/Algorithm Polymake::Core::Application=ARRAY(0x3b5c670) /share/software/user/open/polymake/4.10/share/polymake/perllib [...])
Quando faço a mesma coisa com o módulo List::Compare, não tenho problema.
ATUALIZAR:
Aqui está um exemplo mais minimalista: criei um arquivo chamadoperlscripttest.pl.
#!/usr/bin/perl
use strict;
use warnings;
use Algorithm::Combinatorics "subsets";
print(subsets[1,2,3,4]);
Então perl perlscripttest.pl
dá o erro:
Can't locate loadable object for module Algorithm::Combinatorics in @INC
(@INC contains: /share/software/user/open/polymake/4.10/share/perl5/lib/perl5/x86_64-linux-thread-multi
/share/software/user/open/polymake/4.10/share/perl5/lib/perl5 /home/users/mwlarson/perl5/lib/perl5/x86_64-linux-thread-multi /home/users/mwlarson/perl5/lib/perl5
/share/software/user/open/perl/5.36.1/lib/site_perl/5.36.1/x86_64-linux-thread-multi
/share/software/user/open/perl/5.36.1/lib/site_perl/5.36.1
/share/software/user/open/perl/5.36.1/lib/5.36.1/x86_64-linux-thread-multi /share/software/user/open/perl/5.36.1/lib/5.36.1) at perlscripttest.pl line 6.
Fazer a mesma coisa com List::Compare não resulta em nenhum erro.