Module installed with cpan isn't showing up - perl

I'm trying to install Array::Iterator and Text::ParseWords using cpan. I'm on OSX with cpan v1.61 and perl v5.18.2.
When I start up cpan, after the initial configuration, I type install "Array::Iterator" and it seems to install correctly. But when I try to run my perl script with use Array::Iterator, I get:
Can't locate Array/Iterator.pm in #INC (you may need to install the Array::Iterator module) (#INC contains: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .) at ./parse.pl line 7.
at ./parse.pl line 7.
main::BEGIN() called at ./parse.pl line 7
eval {...} called at ./parse.pl line 7
BEGIN failed--compilation aborted at ./parse.pl line 7.
at ./parse.pl line 7.
Line 7 is:
use Array::Iterator;

Add the complete PATH where your Array::Iterator pm file is located
Use the below code in start of the script after shebang line may be the path is not loaded
BEGIN { push( #INC, 'PATH' ) }

Related

Can't locate GDBM_File.pm [duplicate]

This question already has answers here:
Perl on MacOS X 10.6.2: GDBM_File missing, how to install or work around?
(3 answers)
Closed 5 years ago.
I installed RandSQLGenerator on my Mac (Sierra) and ran this command.
./gentest.pl --dsn=dbi:mysql:host=127.0.0.1:port=4000:user=root:database=test --grammar=conf/outer_join.yy --gendata=conf/outer_join.zz --thread=1 --sqltrace=MarkErrors
I got the following error message
Can't locate GDBM_File.pm in #INC (you may need to install the GDBM_File module)
(#INC contains:
/lib
lib
/Library/Perl/5.18/darwin-thread-multi-2level
/Library/Perl/5.18
/Network/Library/Perl/5.18/darwin-thread-multi-2level
/Network/Library/Perl/5.18
/Library/Perl/Updates/5.18.2/darwin-thread-multi-2level
/Library/Perl/Updates/5.18.2
/System/Library/Perl/5.18/darwin-thread-multi-2level
/System/Library/Perl/5.18
/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.18
.
) at lib/GenTest.pm line 34.
BEGIN failed--compilation aborted at lib/GenTest.pm line 34.
Compilation failed in require at ./gentest.pl line 27.
BEGIN failed--compilation aborted at ./gentest.pl line 27.
I tried to search it from Google but still cannot solve this problem.
It's on cpan.
You can install it via this command:
cpan GDBM_File

getting error while using pdftk tool

for performing the pdf modifications install the cpan module PDF::Tk [Perl integration for the pdf toolkit (pdftk)], but while using the functionality of pdftk getting the below set of error, Can anyone please help me in resolving this.
code samples used:
script name: test.pl -- used to reverse the pdf contain
1)use PDF::Tk;
pdftk inputPDF.pdf cat end-1 output outPDF.pdf
==> Can't locate IO/All.pm in #INC (#INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/site_perl/5.8.5/PDF/Tk.pm line 2.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.5/PDF/Tk.pm line 2.
Compilation failed in require at testPDF.pl line 1.
BEGIN failed--compilation aborted at testPDF.pl line 1.
2) use PDFTk;
pdftk inputPDF.pdf cat end-1 output outPDF.pdf
==>Can't locate PDFTk.pm in #INC (#INC contains: /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl .) at testPDF.pl line 1.
BEGIN failed--compilation aborted at testPDF.pl line 1.
I don't really understand your second example. You're talking about PDF::Tk, so I don't know why you're trying to use a module called PDFTk. I think we can safely ignore that.
Your first example looks like it's getting further. It has found PDF::Tk and is trying to load it. But something is loading IO::All which is apparently missing from your system.
So the solution is to install IO::All. But it makes me wonder how you installed PDF::Tk. Any sane module installation method will also pull in any required modules (and IO::All is clearly listed as a required module for PDF::Tk).

Not installed or installed?

I have a problem in installing modules CPAN on my pc.
I wanted to install a module from CPAN and the problem is ... If i do that command :
perl -MCPAN -e 'install XML::DT'
The answer is :
XML::DT is up to date (0.63).
But when i try to run my program with the module XML::DT, it tells me that i don't have installed !
So... What options do i have to solve this?
Error given to me is :
Can't locate XML/DT.pm in #INC (#INC contains:
/Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16
/Network/Library/Perl/5.16/darwin-thread-multi-2level
/Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2
/System/Library/Perl/5.16/darwin-thread-multi-2level
/System/Library/Perl/5.16 /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.16 .) at ./EX.pl line 2.
BEGIN failed--compilation aborted at ./EX.pl line 2.

./autogen error while building linphone for windows

I have downloaded the Linphone opensource and build using MinGW. I have followed the steps given by the README.mingw. When I use the command "./autogen.sh" to automake the belle-sip, I got the following error.I guess there might be some problems related perl module, and I search the solutions on the Internet. However, still cannot solve the problem.
Chi#Nimal_PC /c/source/belle-sip
$ ./autogen.sh
Generating build scripts in belle-sip...
+ libtoolize --copy --force
libtoolize: $pkgltdldir is not a directory: `/mingw/share/libtool'
+ aclocal -I /share/aclocal
Can't locate Automake/Config.pm in #INC (#INC contains: /mingw/share/automake-1.11 /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys/usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at /c/MinGW/bin/aclocal-1.11 line 37.
BEGIN failed--compilation aborted at /c/MinGW/bin/aclocal-1.11 line 37.
+ autoheader
Can't locate Autom4te/ChannelDefs.pm in #INC (#INC contains: /mingw/share/autoconf /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys/usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at /c/MinGW/bin/autoheader-2.68 line 42.
BEGIN failed--compilation aborted at /c/MinGW/bin/autoheader-2.68 line 42.
+ automake --force-missing --add-missing --copy
Can't locate Automake/Struct.pm in #INC (#INC contains: /mingw/share/automake-1.11 /usr/lib/perl5/5.8/msys /usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8/msys/usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/site_perl/5.8 /usr/lib/perl5/vendor_perl/5.8/msys /usr/lib/perl5/vendor_perl/5.8 /usr/lib/perl5/vendor_perl/5.8 .) at /c/MinGW/bin/automake-1.11 line 47.
BEGIN failed--compilation aborted at /c/MinGW/bin/automake-1.11 line 47.
+ autoconf
/c/MinGW/bin/autoconf-2.68: line 501: /mingw/bin/autom4te-2.68: No such file or directory
/c/MinGW/bin/autoconf-2.68: line 501: exec: /mingw/bin/autom4te-2.68: cannot execute: No such file or directory
You are missing automake dependency that you can install from MinGW Installation Manager. From that install automake.

Why do I get "version (5.12.2) doesn't match executable version" with Perl's PAR?

When I run the following to create an executable out of my Perl script:
pp -o process_target_mode_data Process_Target_Mode_Data.pl
I get the following error output:
Perl lib version (5.12.2) doesn't match executable version (v5.12.0) at /home/Neil/ActivePerl-5.12/lib/Config.pm line 50.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
Compilation failed in require at -e line 459.
/home/Neil/ActivePerl-5.12/site/bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file 'parleNrP2Xi' at /home/Neil/ActivePerl-5.12/site/lib/PAR/Packer.pm line 1172, <DATA> line 1.
Could someone explain to me what is going on and how I can resolve this problem?
Info brian d foy requested:
[bash-3.2][Neil#willy]$ which pp
/home/Neil/ActivePerl-5.12/site/bin/pp
[bash-3.2][Neil#willy]$ /home/Neil/ActivePerl-5.12/site/bin/pp -o process_target_mode_data Process_Target_Mode_Data.pl
Perl lib version (5.12.2) doesn't match executable version (v5.12.0) at /home/Neil/ActivePerl-5.12/lib/Config.pm line 50.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Errno.pm line 8.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/File/Temp.pm line 148.
Compilation failed in require at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
BEGIN failed--compilation aborted at /home/Neil/ActivePerl-5.12/lib/Archive/Zip.pm line 14.
Compilation failed in require at -e line 459.
/home/Neil/ActivePerl-5.12/site/bin/pp: Failed to extract a parl from 'PAR::StrippedPARL::Static' to file 'parludZfldz' at /home/Neil/ActivePerl-5.12/site/lib/PAR/Packer.pm line 1172, line 1.
[bash-3.2][Neil#willy]$
[bash-3.2][Neil#willy]$ /home/Neil/ActivePerl-5.12/bin/cpan -l | grep PAR
PAR 1.002
PAR::Dist 0.47
PAR::Heavy 0.12
PAR::Filter 0.03
PAR::SetupTemp 1.002
PAR::SetupProgname 1.002
PAR::Packer 1.006
PAR::StrippedPARL::Dynamic 0.958
PAR::StrippedPARL::Static 0.958
PAR::StrippedPARL::Base 0.975
PAR::Filter::Bytecode undef
PAR::Filter::Bleach undef
PAR::Filter::Obfuscate undef
PAR::Filter::PatchContent undef
PAR::Filter::PodStrip undef
App::Packer::PAR 0.91
Perl lib version (5.12.2) doesn't match executable version (v5.12.0)
Some parts of your Perl installation are at a different version than others. More specifically, if you look at /home/Neil/ActivePerl-5.12/lib/Config.pm line 50, you will see that there is an explicit comparison of the version of Perl being executed (which is 5.12.0) to the version of the Config.pm library being used (5.12.2).
If you perform a new installation of ActivePerl 5.12.2 (to bring all components up to the same version), this error should go away.
I had same issue. I installed PAR::Packer from Activestate Perl Package Manager (PPM). As mentioned above in one of the replies, there is version mismatch between the perl and pp binaries. Here's how I fixed it:
Uninstall PAR-Packer from PPM.
Open DOS command line.
Run cpan install PAR::Packer
This will download, compile, and install the package from CPAN. MinGW compiler toolchain will be downloaded as well, if needed. The whole process may take a while on slower cpus.
Find the location of that pp, then figure out its version. I bet it's left over from an earlier installation. Ensure that you have PAR for your new version of Perl.
You can also try specifying the location of the particular pp you want to use so you know exactly what one you are using:
$ /full/path/to/5.12.2/pp ...
Go to the perl/lib/Config.pm and changed the condition in the lines:
die "$0: Perl lib version (5.32.0) doesn't match executable '$^X' version ($])" unless $^V;
to
die "$1: Perl lib version (5.32.1) doesn't match executable '$^X' version ($])" unless $^V;
and the next line
$^V eq 5.32.0 or die sprintf "%s: Perl lib version (5.32.0) doesn't match executable '$^X' version (%vd)", $0, $^V;
to
$^V eq 5.32.1 or die sprintf "%s: Perl lib version (5.32.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
this worked for me, at least it won't complain... yes, i know, PERL and Python are f***d up.