如何将我的Perl代码分割成多个文件?
问题描述:
我的脚本变得太长了。我如何将我的代码(过程子)分割成多个Perl文件并告诉解释者理解它们?如何将我的Perl代码分割成多个文件?
有点像:
# -> main.pl
#include "foo.pl"
say_hello();
和:
# -> foo.pl
sub say_hello {print "hello!"}
答
你想要做的是创建一个或多个模块。首先看看perlmod,尤其是Perl Modules section。
既然你说你正在编写程序代码,你会想从你的模块中导出函数。传统的做法是使用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
你的示例代码,转换为一个模块:
在main.pl:
#! /usr/bin/perl
use strict;
use warnings;
use Foo;
say_hello();
在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!"}
`do`不分裂脚本帮助成多个文件。 – reinierpost 2010-12-06 10:14:15