stu96art has asked for the
wisdom of the Perl Monks concerning the following question:

My question is what do I need to do? My situation is, I have a PC and a laptop. I have script written and working on my PC that uses packages GD and Storable. I loaded package GD onto my laptop successfully, which was the only thing I needed to do on my PC. I am pretty sure that both versions of perl are identical, 5.6.1 multi-thread. When I run my script on my laptop I get Storable object version 1.012 does not match $Storable::VERSION 2.04 at C:/Perl/lib/DynaLoader.pm line 225. Compilation failed in require at ... line 4. which is use Storable;
It has been suggested that I may have multiple versions on my laptop. If so, I would like to know what to do to fix this. Otherwise, could someone help me and give me easy to follow instructions on what I need to do to fix this problem. Thank you and any type of help is greatly appreciated.

The solution is simple: you have different versions of Perl installed on the two machines. You moved the script from the PC, which probably runs an old Perl version, which had a storable datafile which was moved to the laptop too.
The Perl version (actually Storable version) on the laptop can't read that datafile, because it was created with an incompatible Storable version.

When you install the Perl version you had on the PC on the laptop, you can read the file again on the laptop, and the script will most likely run.

update: Most important of this is that the version of the Storable module on both machines *must* be different

When I ran perl -v and perl -V I got the same results on both machines. I am still a little confused on what I need to do. I do really appreciate all of your help, but I am wondering whether I need to put that code into my script? or just from the command prompt? I apologize, but I am not at all familiar with any of this.
What I believe that I did what possibly download one version of perl, initially on my laptop, then downloaded this current version, which is the same as my PC version. Thus I expected for Storable to be included the same as it was on my PC. I think that I am missing something. Could someone please explain this to me??

That error message means that you have Storable installed incorrectly. Some modules contain C code that must be compile for the module to be installed.

When such a module is installed, the Perl code part of the module (Storable.pm) gets installed in a subdirectory that could be shared by multiple client systems of different types using the same version of Perl (even though you aren't doing any sharing of your Perl installation via a networked file system).

Meanwhile, the compiled C code for the module (Storable.dll or Storable.so) gets installed in a different subdirecty that is specific to the system for which the code was compiled.

The error message you recieved is telling you that one copy of Storable.pm asked Dynaloader.pm to search the standard places for a Storable.dll (or Storable.so) file and the one it found was one built to work with a different version of Storable.pm.

This means that an upgrade to the Storable module was installed incorrectly or that two versions of the Storable module had been installed and one of them got removed incorrectly or you've changed what gets loaded into @INC in such a way that Perl is finding the new Storable.pm but the old Storable.dll (or Storable.so).

You could just try reinstalling the Storable module and see if that resolves the problem. Otherwise, you'll probably need to do some searching: