在 http://www.cpan.org/ 可以下载到许多有用的模块。比如可以下载一个 FTP 操作相关的模块:http://search.cpan.org/CPAN/auth ... /libnet-1.22.tar.gz
解压缩后安装模块:#perl Makefile.PL
#make install 如果是普通用户,那么没办法将模块安装到系统的全局目录下,但可以使用 PREFIX 参数指定安装到你的用户身份可写的目录下,如:$perl Makefile.PL PREFIX=/home/yourname/perl/lib
有些 Perl 模块开发者会要求使用了另一个辅助模块 Module::Build 来编译安装他们的作品,此时安装方式大致如下:#perl Build.PL
./Build install 使用模块:
要了解一个模块中的详细信息,可以使用 perldoc 命令来查看,它相当于 man 命令,如 perldoc File::Basename 。
比如要使用 File::Basename 中的 basename 函数,那么可以如下使用:
[Perl] 纯文本查看 复制代码 #!/usr/bin/perl
use File::Basename;
my $basename = basename("/home/beyes/myperl");
print "$basename\n";
运行输出:如上,当准备使用某个模块时,就用 use 命令先进行声明一下。
如果引入模块中的函数和自定义的函数同名,那么到底使用那个函数?答案是,谁定义的近就用谁。比如下面程序:
[Perl] 纯文本查看 复制代码 #!/usr/bin/perl
sub basename {
return $_[0];
}
use File::Basename;
my $bname = &basename("/home/beyes/myperl");
print "$bname\n";
运行输出:如果调换一下 sub 声明的子函数和 use 声明的引入模块语句的前后顺序,那么将输出:/home/beyes/myperl 。
还有另一种情况是,我只想使用模块中的某些函数,而不使用其它的(因为其它的可能已经和我已定义的函数有同名冲突),那么此时可以用在 use 声明中加入导入列表(import list) 来指出它提供哪些函数,不指出的则不用:use File::Basename qw/ basename /; 这样,我们在用 basename 时,用的是模块中的函数,而使用别的函数时则是自定义的,即使自定义函数和模块中的函数有重名的。
如果导入列表如下写法,则表示不要引入任何函数:
use File::Basename qw / /;
或
use File::Basename ();
我们还可以通过全名指定使用模块中的函数:
[Perl] 纯文本查看 复制代码 #!/usr/bin/perl
use File::Basename;
my $bname = File::Basename::dirname("/home/beyes/myperl");
print "$bname\n";
运行输出: |