Perl - Local :: lib does not constantly find the local path in @INC - conflict with perlbrew?

I donโ€™t have root access to the system, so I install perl modules using local :: lib, which I installed using the boot method:

perl Makefile.PL --bootstrap=~/foo
make test && make install
echo '[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >>~/.bash_profile

Then I successfully installed cpanm and used cpanm to install the FAST module. However, when I try to use the fasgrep function, I get the following error:

% fasgrep
Can't locate FAST.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /home/dpearton/perl5/bin/fasgrep line 5.

I checked that FAST.pm is available in the local library, but the system does not seem to be looking for it there.

according to the path variables that it should look for in the right place:

$ echo PATH=$PATH ; env|sort|grep PERL
PERL5LIB=/home/dpearton/perl5/lib/perl5:/home/dpearton/perl5/lib/perl5
PERLBREW_BASHRC_VERSION=0.73
PERLBREW_HOME=/home/dpearton/.perlbrew
PERLBREW_ROOT=/home/dpearton/perl5/perlbrew
PERL_LOCAL_LIB_ROOT=/home/dpearton/perl5
PERL_MB_OPT=--install_base "/home/dpearton/perl5"
PERL_MM_OPT=INSTALL_BASE=/home/dpearton/perl5

I even added the export of PER5LIB = $ HOME / perl5 / lib / perl5 to my .bash_profile and it still doesn't work.

perl. , perlbrew? , "" prelbrew?

+4
1

, , PERL5LIB,

/home/dpearton/perl5/lib/perl5

/home/dpearton/perl5/lib/perl5

@INC, () @INC perl, FAST.pm.

:

  • perl , , ,
  • perl -T (taint mode).

shebang fasgrep, , -T, . , -T. , . -T . script , setuid, -T . , .

, , , , fasgrep (%), , set ($).

+5

Source: https://habr.com/ru/post/1608998/


All Articles