Eugene Borukhovich wrote:
> Yep the full boat perl Makefile.PL;make;make install. I dont have
> problems with the default modules that came with Perl, only the newly
> compiled ones - maybe should start using CPAN shell
The CPAN shell does the same thing.
>>>IO object version 1.21 does not match bootstrap parameter 1.18 at
>>>/usr/lib/perl5/5.8.3/i386-linux-thread-multi/DynaLoader.pm line 249.
>>
> So why is DynaLoader referenced?
DynaLoader is *reporting* the problem, not *causing* it.
Besides - the reported version numbers don't make sense for DynaLoader.
For 5.8.1, it's at 1.04, for 5.8.4 it's 1.05.
For 5.8.1, IO is at 1.20, with 5.8.4, IO is 1.21. That's more in line
with the version number's you're seeing above. (An interesting note is
that the older version you're seeing - 5.18 - predates the Perl version
you're using. That fact could be helpful in diagnosing the cause.)
So you have the latest IO.pm, which is reporting version 1.21, but when
DynaLoader tries to load IO.so, that reports version 1.18. This is a
fatal problem, so DynaLoader complains about it and dies.
Perl has separate directories for version-specific modules specifically
to prevent this sort of problem. The fact that it's happening usually
indicates either a module install gone very wrong, or a very badly
misconfigured perl.
The first problem listed is the one you need to diagnose and fix first -
the others are a result of the first. When IO fails to load, the module
that tried to use it (IO::Handle) fails. Then the module that tried to
use IO::Handle fails. And so on, until the main script fails at the end.
So the key to solving the problem is figuring out *why* your Perl is
loading the latest IO.pm, but an older IO.so.
That's why I asked about how it was installed - I've often seen folks
skip the final "make install" step and manually copy .pm files into
place. Naturally that results in the newer .pm trying to load the older .so.
Another common problem is issuing 'make install' when 'make' failed with
compilation errors. Since the .so failed to build, the only thing that
gets installed in that case is the newer .pm; the older .so is left in
place.
The *very* old IO.so that's being reported is interesting - it indicates
that libraries from a much older Perl are being found. That can happen
in any number of ways.
sherm--
--
Cocoa programming in Perl:
http://camelbones.sourceforge.net
Hire me! My resume:
http://www.dot-app.org