在另一个perl文件中使用其他perl文件的文件

时间:2010-02-02 21:58:56

标签: perl

  

可能重复:
  How do I include functions from another file in my Perl script?

我有一个perl文件假设a.pl并且我想使用perl文件b.pl中的函数。我该怎么做

4 个答案:

答案 0 :(得分:3)

将b.pl转换为模块

  1. 将其称为描述性内容,例如MyBModule(核心保留B)。
  2. 将文件重命名为.pm,如MyBModule.pm
  3. 在顶部添加一个包,例如package MyBModule;
  4. 通过设置最后一行1;
  5. 在包上设置真实的返回码

    如果您想在调用sub时使用您的包名称,则无需执行任何其他操作。

    use MyBModule;
    use strict;
    use warnings;
    MyBModule::sub1();
    

    如果您不想使用包名称对其进行限定,请继续阅读...

    使用Exporter.pm

    现在配置Exporter。

    1. 在模块顶部添加use Exporter;语句。
    2. 添加一行our @EXPORT_OK = qw(sub1 sub2);
    3. 完成后,您的模块应该看起来像这样

      package MyBModule;
      use strict;
      use warnings;
      use Exporter;
      our @EXPORT_OK = qw(sub1 sub2);
      
      sub sub1 { ... }
      sub sub2 { ... }
      

      编辑来电者

      1. 确保库位于@INC或当前目录中的模块中。如果没有将目录附加到PERL5LIB
      2. 添加use MyBModule qw(sub1 sub2);
      3. 之类的行

        阅读perldoc Exporter了解更多信息

        之后您的脚本应如下所示:

        use strict;
        use warnings;
        use MyModuleB qw( sub1 sub2 );
        

        真的不是那么难,你习惯了这需要大约15秒。

答案 1 :(得分:2)

最佳/传统方式是将所有函数保存在Perl模块文件(.pm)中:请参阅perlmod。这需要您将b.pl转换为package。然后,您将从a.pl访问您的模块文件(MyFuncs.pm),其中包含:

use MyFuncs;

答案 2 :(得分:1)

使用require和/或use功能。

答案 3 :(得分:-1)

使用'use'关键字来使用其他模块中的函数。

示例:

档案a.pl:

use b;
f_in_b();

文件b.pm:

sub f_in_b()
{
  print "f_in_b\n";
}

1;

重要的: 文件b.pm必须具有最终1;