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

Quickly I'll explain the problem. My old server was getting too expensive for me so I tarred and transferred all of my files, images, etc. from my old server to my new server. Everything is working great, except one script (a shopping cart script) that is giving me the following error:

Software error: [Tue Jan 17 13:18:27 2006] checkout.pl: Can't locate SimHMAC.pm in @IN +C <br>(@INC contains:<br> /usr/lib/perl5/5.8.3/i386-linux-thread-mult +i /usr/lib/perl5/5.8.3 /usr/lib/perl5/site_perl/5.8.3/i386-linux-thre +ad-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/ +lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site +_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3 /u +sr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/ +perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_ +perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i +386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-th +read-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi / +usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr +/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/li +b/perl5/vendor_perl) at /home/tznius/www/cgi-bin/store/library/SimLib +.pm line 4. [Tue Jan 17 13:18:27 2006] checkout.pl: BEGIN failed--compilation abor +ted at /home/mydomain/www/cgi-bin/store/library/SimLib.pm line 4. Compilation failed in require at checkout.pl line 430.

How do I fix this problem? There is nothing wrong with the script, it must be the paths on my new server. I have to confess that I am so bad at setting paths and knowing how to make them right. Can someone help with this? The checkout.pl program 'requires' the SimHMAC file on line 430. But it is not SimHMAC's or SimLib's fault because if I comment out the line that 'requires' this file, it just gives an error for the next file in the script. This is an internal path problem on my new server, but I don't know how to remove this error. Could someone give me a little guidance along with the exact commands I need to type in order to get this working? I am desparate to get this up again asap.
Below is a url with the error I'm getting.
http://38.119.119.22/cgi-bin/store/checkout.pl

Edit: g0n - code tags

Replies are listed 'Best First'.
Re: compilation error question
by tirwhan (Abbot) on Jan 17, 2006 at 18:55 UTC

    The error message tells you what's wrong, the SimHMAC.pm file cannot be found in any of the places that perl searches. I assume you've got it installed in the same place as your script, add

    use lib '/home/tznius/www/cgi-bin/store/library/';

    at the beginning of your scripts (or modify the path accordingly if you've got the library installed somewhere else).

    P.S. You should use <code></code> tags around any code or shell output.


    There are ten types of people: those that understand binary and those that don't.
Re: compilation error question
by glasswalk3r (Friar) on Jan 17, 2006 at 19:58 UTC

    You can use the Carp module in checkout.pl script to find out where the SimHMAC module is being used

    Alceu Rodrigues de Freitas Junior
    ---------------------------------
    "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill