Solved

URGENT: Perl Script Error

Posted on 2003-11-16
11
721 Views
Last Modified: 2007-12-19
I am having the following script error after the admin update the server.

Can't load '/usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/auto/Tk/Event/Event.so' for module Tk::Event: /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/auto/Tk/Event/Event.so: undefined symbol: PL_sv_undef at /usr/intel/97r1.3/lib/perl5/i386_linux22/5.00404/DynaLoader.pm line 166.

 at /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/Tk.pm line 13
BEGIN failed--compilation aborted at /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/Tk.pm line 13.
BEGIN failed--compilation aborted at DE.pl line 8.
Reference miscount in sv_replace() at /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/Tk/Event.pm line 3.
Can't locate auto/Tk/Event/CleanupGlue.al in @INC (@INC contains: /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux /usr/intel/97r1.3/lib/perl5/i386_linux22/5.00404 /usr/intel/97r1.3/lib/perl5 /usr/intel/97r1.3/lib/perl5/site_perl/i386_linux22 /usr/intel/97r1.3/lib/perl5/site_perl .) at /usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux/Tk/Event.pm line 3
END failed--cleanup aborted at DE.pl line 8.

And, line 8 of DE.pl is
use lib "/usr/intel/pkgs/perl/5.6.1/lib/site_perl/5.6.1/i686-linux";
use Tk;

Can anyone help me on this?

~ fantasy ~

0
Comment
Question by:fantasy1001
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
11 Comments
 
LVL 20

Expert Comment

by:jmcg
ID: 9761882
Do you know what sort of update was performed?

The only clue to a problem that I can see is that you have perl 5.6.1 installed,
but your @INC path includes what are apparently old, un-updated libraries from 5.4.4.
0
 
LVL 5

Author Comment

by:fantasy1001
ID: 9761894
jmcg, so how can I include the newest version of libraries to @INC path?

and, I am not sure what the admin had done to the server. thanks
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 9767143
you need to install Tk module again for your updated perl
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 5

Expert Comment

by:BlackDiamond
ID: 9767480
perl -MCPAN -e 'install Tk'
0
 
LVL 18

Expert Comment

by:kandura
ID: 9767741
As jmcg noted, you may have a problem with conflicting versions of perl.

Could you post the output of 'which perl' and 'perl -v' please?
That will probably tell you which version of perl you're currently running (my guess would be v5.00404),
and possibly where the new perl (if any) is located.
0
 
LVL 5

Author Comment

by:fantasy1001
ID: 9767888
All,

I am running on Perl 5.00404. And Perl Tk on 8.0. And I can see there are newest version of Perl 5.8.0 installed.
The admin updated the kernel last week and all the problem come out. Should I reinstall Perl Tk?

~ fantasy ~
0
 
LVL 18

Expert Comment

by:kandura
ID: 9767975
I think the first thing you should do is to make sure that the versions of the libraries you're using agree with
the version of perl you're running. So if you run perl 5.00404, then use the 5.4 version of the TK. If you run
perl 5.8, use the 5.8 version of TK.
I don't know if there are binary incompatibilities between 5.4 and 5.6, but judging from your error messages
it sure looks that way. There definitely are between 5.6 and 5.8, so you can't mix those.

I would first suggest you stop using 5.00404 and use 5.8 instead. If it's installed, why not use it?
If there's no TK for 5.8, then you may need to install it, yes.
0
 
LVL 5

Author Comment

by:fantasy1001
ID: 9767993
Kandura,

How do I stop using 5.00404 and use 5.8 instead? That is what I need to do. How can I change the perl binary that run default from the system.
And, I also do not have Admin access.

~ fantasy ~
0
 
LVL 18

Expert Comment

by:kandura
ID: 9768021
That depends on how you are calling it:
1. if you call it on a shell as 'perl yourscript' then you change that to '/path/to/perl5.8 yourscript'
2. if you call your script directly (or as a CGI script - but then you wouldn't be using TK I guess),
   then you need to change the shebang line. This is the first line in the script, and looks something
   like '#!/usr/bin/perl'
   Change that to '#!/path/to/perl5.8' and it should work

HTH,
Kandura
0
 
LVL 5

Author Comment

by:fantasy1001
ID: 9768050
Kandura,

Thanks very much. Thats worked.

~ fantasy ~
0
 
LVL 18

Accepted Solution

by:
kandura earned 250 total points
ID: 9768059
Excellent!!!
Glad you're able to continue working now :-)

Regards,
Kandura
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question