2010-12-06 66 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教程。

相關問題