Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Error Message - PL_perl_destruct_level at /usr/lib64/perl5/DynaLoader.pm

by Mr. Muskrat (Canon)
on Apr 28, 2016 at 14:08 UTC ( #1161776=note: print w/replies, xml ) Need Help??


in reply to Error Message - PL_perl_destruct_level at /usr/lib64/perl5/DynaLoader.pm

Summary of your set up and problem as described

  1. You are using /usr/bin/perlml as your Perl executable (whatever version that is).
  2. You installed DBD::mysql via cPanel which may or may not use /usr/bin/perlml.
  3. You have the Perl modules for the version of Perl you used on the old server in subdirectories of /home/jeffer36.
  4. You presumably have your own Perl modules somewhere in /home/jeffer36 as well.
  5. You have code (such as the above snippet) that tell the new Perl executable to use the old and incompatible modules.

Break the chains that are holding you back! (How to fix it)

  1. Remove the @INC entries for the old and incompatible Perl modules.
  2. Determine if cPanel installs Perl modules for use by /usr/bin/perlml.
  3. If needed, update your script to use the version of Perl that cPanel updates.
  4. Try to run the script.
  5. Install missing modules.
  6. Repeat steps 4 and 5 until it executes successfully.

  • Comment on Re: Error Message - PL_perl_destruct_level at /usr/lib64/perl5/DynaLoader.pm

Replies are listed 'Best First'.
Re^2: Error Message - PL_perl_destruct_level at /usr/lib64/perl5/DynaLoader.pm
by NorCal12 (Initiate) on Apr 28, 2016 at 15:55 UTC

    Mr. Muskrat, thank you for your clear suggestions. I wish to clarify somethings that may have been misunderstood.

    In your summary, item #1, I am using /usr/bin/perlml as my executable. This is because when I go to the Perl Module section of cPanel it states: "Using Your Perl Module(s) Your Perl script needs to know how to find the modules in your path. You can do this by adding one of the two choices below to the top of your script: #!/usr/bin/perl use cPanelUserConfig; or #!/usr/bin/perlml".

    In your summary, item #2, my assumption is that since the cPanel instructed me to use "#!/usr/bin/perlml", that the installation of DBD::mysql via the cPanel would be using "#!/usr/bin/perlml".

    In your summary, item #3, I did not transfer any of the perl modules from the old server to the new. I only moved the webpage scripts and mysql database data. I am relying upon the install version of perl on the new server and all new installations of modules.

    As for the various versions. Again from cPanel, Perl is version 5.10.1 and DBD::mysql is vesion 4.033.

    .

      This is because when I go to the Perl Module section of cPanel it states: "Using Your Perl Module(s) Your Perl script needs to know how to find the modules in your path. You can do this by adding one of the two choices below to the top of your script: #!/usr/bin/perl use cPanelUserConfig; or #!/usr/bin/perlml".

      In your summary, item #3, I did not transfer any of the perl modules from the old server to the new. I only moved the webpage scripts and mysql database data. I am relying upon the install version of perl on the new server and all new installations of modules.

      Okay, fair enough but your responses prompt more questions.

      If cPanel installs modules where /usr/bin/perlml can find them, why did you modifying @INC in the BEGIN block? What is actually stored in the perl and perl5 subdirectory structures in /home/jeffer36?

        On the new server, there is a perl folder and a perl5 folder. My original webpage script was pointing to the perl folder

        BEGIN { my $base_module_dir = (-d '/home/jeffer36/perl' ? '/home/jeffer36/ +perl' : ( getpwuid($>) )[7] . '/perl/'); unshift @INC, map { $base_module_dir . $_ } @INC;

        This produced an error because mysql.pm is located in perl5. So I added

        unshift @INC, '/home/jeffer36/perl5/lib/perl5','/home/jeffer36/perl5/lib/perl5/x86_64-linux','/home/jeffer36/perl5/lib/perl5/x86_64-linux/Bundle';

        It now finds mysql.pm but does not work.

      my assumption is that since the cPanel instructed me to use "#!/usr/bin/perlml", that the installation of DBD::mysql via the cPanel would be sing "#!/usr/bin/perlml".

      Seems to me that their advice is to use either /usr/bin/perl or /usr/bin/perlml. I would suggest giving /usr/bin/perl a try (if you haven't already).

      Cheers,
      Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1161776]
help
Chatterbox?
What's the matter? Cat got your tongue?...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2018-07-21 10:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (446 votes). Check out past polls.

    Notices?