【问题标题】:What's wrong with this Perl module?这个 Perl 模块有什么问题?
【发布时间】:2011-11-20 21:19:51
【问题描述】:

我正在制作一个非常非常简单的模块(这是我写过的第一个):

package Master::Math;
use 5.12.4;
use strict;
use warnings;

require Exporter;

our @ISA = qw(Exporter)

our %EXPORT_TAGS = ( 
    'all' => [ qw(
        max



=cut

1; # End of Master::Math

当我在我的程序中运行 use this 时,我得到了错误

C:/Perl/lib/Master/Math.pm 第 3 行的版本格式无效(非数字数据), 在“包大师::数学”附近

" C:/Perl/lib/Master/Math.pm 第 3 行的语法错误,靠近“package Master::Math

需要出口商" 在 C:\MainDev\myperl\max.pl 第 3 行的 require 编译失败。 BEGIN 失败——编译在 C:\MainDev\myperl\max.pl 第 3 行中止。

我需要什么来解决这个问题?谢谢!

【问题讨论】:

  • 对于初学者,您需要向我们展示错误消息所引用的代码。
  • @KeithThompson:我做到了!其实我一开始忘了做,但我做到了。
  • 好的,当我阅读它时它不存在。但是当您发布代码时,请使用{} 图标来格式化它而不是" 图标。我正要为你编辑它,但我认为你引用它的方式弄乱了代码。请重新编辑您的问题,重新粘贴您的模块源代码,选择源代码,然后单击{} 图标以正确格式化。谢谢。
  • 使用 Perl 5.14.1 或 5.10.1(在 MacOS X 上,如果重要的话),您的代码不会对我产生该错误。此外,生成投诉的可能不是第 3 行(如图所示的 use strict; 行,package Master::Math; 根据错误消息)。如果您显示代码和错误,请确保代码与您正在执行的内容完全匹配。

标签: perl perl-module


【解决方案1】:

@ISA 的声明中缺少分号。

sub max$foo 未声明;使用foreach my $foo ...

这应该可以编译。我还没有超越。

(顺便说一句,我没有遇到与您相同的错误。我使用的是 perl 5.14.0,perl -cw master-math.pm。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多