in reply to DBI, Windows and Perl56.dll error

"Perhaps a required shared library or DLL is not installed where expected at Line 6."

Isn't the name of the script where the above error occurs listed? It usually is.

The reason I ask is because your sample code only has 5 lines, and I see nothing there that would cause the error you list. Obviously the error is coming from DBI.pm or one of the modules it loads. It would be very helpful to know which.

The fact that something is even looking for a file called perl56.dll on a system that only has 5.8 is smells funny. My gut feeling, given your explicit demonstration of the install procedure you used, is that the ActiveState repository have either mixed up a 5.6 PPM with their 5.8 PPMs or the 5.8 package was linked against the wrong set of libraries. It might be worth raising the problem with AS and see if they are aware of anything.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Replies are listed 'Best First'.
Re: Re: DBI, Windows and Perl56.dll error
by Akira71 (Scribe) on May 15, 2003 at 20:17 UTC
    First again thank you. To Jenda,
    I installed the module in first place via PPM process. So this should be exactly as you say. I will try the remove and install.

    This is the full error message as was given to me:
    C:\Apache2\cgi-bin>perl intro6.pl install_driver(mysql) failed: Can't load 'C:/Perl/site/lib/auto/DBD/my +sql/mysql. dll' for module DBD::mysql: load_file:The specified module could not b +e found at C:/Perl/lib/DynaLoader.pm line 229. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expecte +d at intro6.pl line 6

    Does this make sense to anyone? I am thinking there is a mixup in PERL versions somewhere as in I am running 5.8.0 but Activestate PPM beleives me to be using 5.6 or the PPM process believes this. Otherwise, it is possible to have problem with PPM process and I need to make Activestate aware. I am going to try manual install again and see if this clears up.
    Again, I am most gracious for all the help proffered. I have many things to try and resolve along lines I was not thinking.
    Akira

      Have you checked for the existance of

      C:/Perl/site/lib/auto/DBD/mysql/mysql.dll?

      From the "perl56.dll is missing" msg you mentioned earlier, and the error you are getting from perl, it's almost certain that you have a copy of mysql.dll on your system in the right place, but that it is attempting to import apis from perl56.dll. I've just checked the copy in the zip at AS 5.8 list and it is definately importing from perl58.dll, so it would appear there is a problem in the PPM process.

      If you still get the same problem after you have deleted and reinstalled using PPM. Then my recommendation would be to delete the DBD::MySql package using PPM. Then manually download the zip (via the link above), extract the .ppm and .tar.gz files onto your local harddrive and point PPM at them and redo the install from there.

      If that still doesn't work then you may also have to do the same for the rest of the DBI dependancy tree.

      Finally, if your really desperate, you could manually install the stuff. It isn't so very hard, but it isn't something to do unless your comfortable with it, as its quite difficult to describe, and you'll likely not get much help if you do it wrong.


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller