免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3239 | 回复: 10
打印 上一主题 下一主题

win7下perl报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-15 10:48 |只看该作者 |倒序浏览
程序中使用LWP模块,在win2003上执行没问题,在win7下安装相同的perl解释器就会报错,报错为:
  1. Global symbol "%Config" requires explicit package name at C:/Perl/lib/Time/Local.pm line 36.
  2. Global symbol "%Config" requires explicit package name at C:/Perl/lib/Time/Local.pm line 39.
  3. Compilation failed in require at C:/Perl/site/lib/HTTP/Date.pm line 11.
  4. Compilation failed in require at C:/Perl/lib/LWP/UserAgent.pm line 12.
  5. BEGIN failed--compilation aborted at C:/Perl/lib/LWP/UserAgent.pm line 12.
  6. Compilation failed in require at C:/Perl/lib/LWP.pm line 7.
  7. Compilation failed in require at LWP2.pl line 4.
  8. BEGIN failed--compilation aborted at LWP2.pl line 4.
复制代码
看了下C:/Perl/lib/Time/Local.pm这个PM包,不明白%Config的用法,请各位指教。
  1. package Time::Local;

  2. require Exporter;
  3. use Carp;
  4. use Config;
  5. use strict;

  6. use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK );
  7. $VERSION   = '1.2300';

  8. @ISA       = qw( Exporter );
  9. @EXPORT    = qw( timegm timelocal );
  10. @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );

  11. my @MonthDays = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );

  12. # Determine breakpoint for rolling century
  13. my $ThisYear    = ( localtime() )[5];
  14. my $Breakpoint  = ( $ThisYear + 50 ) % 100;
  15. my $NextCentury = $ThisYear - $ThisYear % 100;
  16. $NextCentury += 100 if $Breakpoint < 50;
  17. my $Century = $NextCentury - 100;
  18. my $SecOff  = 0;

  19. my ( %Options, %Cheat );

  20. use constant SECS_PER_MINUTE => 60;
  21. use constant SECS_PER_HOUR   => 3600;
  22. use constant SECS_PER_DAY    => 86400;

  23. my $MaxDay;
  24. if ($] < 5.012000) {
  25.     my $MaxInt;
  26.     if ( $^O eq 'MacOS' ) {
  27.         # time_t is unsigned...
  28.         $MaxInt = ( 1 << ( 8 * $Config{ivsize} ) ) - 1;
  29.     }
  30.     else {
  31.         $MaxInt = ( ( 1 << ( 8 * $Config{ivsize} - 2 ) ) - 1 ) * 2 + 1;
  32.     }

  33.     $MaxDay = int( ( $MaxInt - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1;
  34. }
  35. else {
  36.     # recent localtime()'s limit is the year 2**31
  37.     $MaxDay = 365 * (2**31);
  38. }
  39. ......
复制代码

论坛徽章:
0
2 [报告]
发表于 2013-04-15 10:53 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2013-04-15 11:00 |只看该作者
回复 2# Amyshu121


    没看明白,请指点下~

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
4 [报告]
发表于 2013-04-15 11:22 |只看该作者
怎么安装的?

论坛徽章:
0
5 [报告]
发表于 2013-04-15 11:28 |只看该作者
回复 4# yybmsrs


    perl-5.10.0版本ActivePerl-5.10.0.1005-MSWin32-x86-290470.msi,直接在win7下傻瓜式安装。。。
LWP模块使用界面工具PPM安装。。。
包括LWP在内的好多模块在使用的时候都会报相同的错误(%config没有定义)

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
6 [报告]
发表于 2013-04-15 11:39 |只看该作者
C:/Perl/lib/Config.pm看看这个文件

论坛徽章:
0
7 [报告]
发表于 2013-04-15 12:36 |只看该作者
回复 6# yybmsrs


   
C:/Perl/lib/Config.pm开头已经用use vars定义了%Config了,应该是不回报错,但是现在还是报错。
  1. package Config;
  2. use strict;
  3. use warnings;
  4. use vars '%Config';

  5. # Skip @Config::EXPORT because it only contains %Config, which we special
  6. # case below as it's not a function. @Config::EXPORT won't change in the
  7. # lifetime of Perl 5.
  8. my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1,
  9.                     config_re => 1, compile_date => 1, local_patches => 1,
  10.                     bincompat_options => 1, non_bincompat_options => 1,
  11.                     header_files => 1);

  12. @Config::EXPORT = qw(%Config);
  13. @Config::EXPORT_OK = keys %Export_Cache;
复制代码

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
8 [报告]
发表于 2013-04-15 13:47 |只看该作者
不应该

论坛徽章:
0
9 [报告]
发表于 2013-04-15 16:13 |只看该作者
不要不要沉啊。。。

论坛徽章:
0
10 [报告]
发表于 2013-04-19 09:32 |只看该作者
顶一个,不要沉
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP