2010-12-06 125 views
12

我的脚本变得太长了。我如何将我的代码(过程子)分割成多个Perl文件并告诉解释者理解它们?如何将我的Perl代码分割成多个文件?

有点像:

# -> main.pl 

#include "foo.pl" 
say_hello(); 

和:

# -> foo.pl 
sub say_hello {print "hello!"} 

回答

18

你想要做的是创建一个或多个模块。首先看看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!"} 
0

将它放在与您的课程相同的文件夹中,并将use ClassName添加到调用文件的顶部。

另请查看Perl OOP教程。

相关问题