我的脚本太长了.如何将我的代码(程序子)拆分为多个Perl文件并告诉解释器理解它们?
有一些像:
# -> main.pl
#include "foo.pl"
say_hello();
Run Code Online (Sandbox Code Playgroud)
和:
# -> foo.pl
sub say_hello {print "hello!"}
Run Code Online (Sandbox Code Playgroud)
cjm*_*cjm 19
您要做的是创建一个或多个模块.首先查看perlmod,尤其是Perl Modules部分.
既然您说您正在编写过程代码,那么您将需要从模块中导出函数.传统的方法是使用Exporter(随Perl一起提供),虽然Sub :: Exporter是一个较新的CPAN模块,可以提供一些不错的功能.(另请参阅其Sub :: Exporter :: Tutorial以了解导出函数.)
模块可以放在@INC变量中列出的任何目录中.尝试perl -V获取一个列表.您还可以使用lib在运行时添加目录.一个技巧是使用FindBin模块查找脚本的位置,然后添加相对于该目录的目录:
use FindBin; # Suppose my script is /home/foo/bin/main.pl
use lib "$FindBin::Bin/lib"; # Add /home/foo/bin/lib to search path
Run Code Online (Sandbox Code Playgroud)
您的示例代码转换为模块:
在main.pl中:
#! /usr/bin/perl
use strict;
use warnings;
use Foo;
say_hello();
Run Code Online (Sandbox Code Playgroud)
在Foo.pm:
package Foo;
use strict;
use warnings;
use Exporter 'import';
our $VERSION = '1.00';
our @EXPORT = qw(say_hello);
sub say_hello {print "hello!"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6816 次 |
| 最近记录: |