mhursin
mhursin

Reputation: 1

Issue with the search order when including perl modules

this question is a follow up to: What's the search order in perl's include path when a module is loaded posted a while back but that remained unanswered.

I have 2 versions (1.22 and 1.25) of the module IO installed in two separate folders:

/some_path/lib/perl5/x86_64-linux-thread-multi/ (for IO.pm version 1.25) and /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/ (for IO.pm version 1.22)

The @INC list looks like:

/some_path/lib/perl5/x86_64-linux-thread-multi/
/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/  
/usr/lib/perl5/site_perl/5.8.8/  
/usr/lib/perl5/site_perl/  
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/  
/usr/lib/perl5/vendor_perl/5.8.8/  
/usr/lib/perl5/vendor_perl/  
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/  
/usr/lib/perl5/5.8.8/  
.  

When i try perl -e 'use IO', perl returns the following error message:
IO object version 1.22 does not match bootstrap parameter 1.25 at /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/DynaLoader.pm line 253. which suggests that the IO module version 1.22 is used instead of IO version 1.25 even though the IO version 1.25 should be located first.

Any idea why that is?

Upvotes: 0

Views: 1415

Answers (1)

ikegami
ikegami

Reputation: 385976

You have a bad install of IO.

perl is finding 1.25's IO.pm in /some_path/lib/perl5/x86_64-linux-thread-multi/ as intended, but the first auto/IO/IO.so it finds is 1.22's (in /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/?)

Upvotes: 2

Related Questions