Perl 编程/代码重用(模块)
Perl 模块(以pm扩展名结尾的文件)是 Perl 代码文件,可以在程序之间重复使用。有一个名为 CPAN(Comprehensive Perl Archive Network)的 Perl 模块在线存储库,地址为http://cpan.org。许多这些模块随 Perl 标准提供,但其他模块必须根据需要安装。
有数千个 Perl 模块可以做任何事情,从创建临时文件到调用亚马逊网络服务。如果您知道如何查找、安装和使用合适的 Perl 模块,这些模块可以轻松快速地编写您的应用程序。如果您想编写自己的 Perl 模块,最好的方法是先在http://Search.cpan.org搜索,以确保您不会重复造轮子。
Perl 模块有两种主要风格
- 函数式
- 面向对象
一些 Perl 模块同时使用这两种方法。
函数式 Perl 模块的使用方式如下
use Foo qw/bar/; # Import the name of the subroutine you want to use. print bar();
要使用面向对象的 Perl 模块,您需要执行以下操作
use Foo; my $foo = Foo->new(); print $foo->bar; #call Foo's bar method and print the output.
找到您想要的 Perl 模块http://cpan.org,并下载压缩文件。解压并解压缩文件
tar -zxvf MyModule.tgz
然后进入此目录,并按照 README 或 INSTALL 文件中的说明进行操作。
您也可以使用一个名为cpan的命令行程序,如果您已安装它
sudo cpan -imt Module::I::Want
Perl 模块与 Perl 脚本在两个关键且简单的方式上有所不同。不要用“#!/path/to/perl”开头,而是用以下内容开头
package My::Module::Name;
您需要用一个真值结束模块,因此常见的做法是在文件末尾执行此操作
1;
以下是一个有效的 Perl 模块
package My::Module::Name; 1;
我们创建一个名为ExampleModule.pm的新文件,并在其中包含以下代码
package ExampleModule; use strict; use base "Exporter"; our @EXPORT = qw/hello_world/; sub hello_world { print "Hello, World!\n"; } 1;
我们可以通过运行
perl -c ExampleModule.pm
来测试语法是否有效如果一切正常,它将打印出“ExampleModule.pm 语法正确
”。否则,您可以使用打印出的消息进行调试。
#!/usr/bin/perl use ExampleModule; hello_world(); exit;
现在,我们可以在脚本中使用它来查看它是否有效
瞧!您已经创建了一个 Perl 模块。
创建 CPAN 风格的 Perl 模块CPAN 风格的模块具有测试套件,以及将模块构建到 Perl 库中的方法。下载并安装Module::Starter
module-starter --module=My::Module::Name, My::Other::Module::Name, --author="My Name" --email="[email protected]"
从 CPAN。安装完成后,您的路径中将有一个名为 module-starter 的程序。要在命令行创建新模块,请执行以下操作然后,它将为您创建一组目录,包括一些带有起始 POD 文档的 shell 模块文件。Perl 模块将位于创建的目录内的 lib 目录中。这些是需要编辑的文件。您可以将模块的测试放到“t
>perl Makefile.PL >make >make test >sudo make install
”目录中。要安装和构建模块,请执行以下操作
如何将参数传递给 Perl 模块中的函数package functions;
sub count() {
my ($command_type, $rc) = @_;
[…]
从 Perl 模块调用函数时,使用模块名称、函数名称以及开头和结尾的括号。如果要传递一些参数,则按顺序在括号内完成。模块中的代码以以下方式获取参数在第一行之后,函数count可以使用传递的参数$command_type和$rc。主程序调用count()
use
sub count() {
use functions;
my $rc;
$rc = […];
[…]
&functions:count("INSERT", $rc);
[…]