天天看点

perl的安装Perl work tips and how to install perl on various platform 收藏

perl -MCPAN -e 'install Time::HiRes'

perl -MCPAN -e 'install File::Temp'

perl -MCPAN -e 'install Data::Dumper'

perl -MCPAN -e 'install DBI'

perl -MCPAN -e 'install Getopt::Long'

perl -MCPAN -e 'install Storable'

Perl work tips and how to install perl on various platform 收藏

1.Can't locate .pm, @INC contains...

Sulution: use the following to refer the .pm

use lib 'path to lib';

2.perl Can't locate object method "new" via package

3.Using variable in expression pattern.

$french =~ s/($fr)/($en)/ig;

4. Very funny problem.

foreach my $column (@$pcolumns)

{

if ($column =~ s/^blocknames*=[s'"]*//i)

{

$self->{_attributes}->{'block_name'} = $column;

}

else

{

$self->{_log} and $self->{_log}->Error("FieldDef:parse: unknown attribut line '$column'n");

print " should die!!n";

return undef; #!!!!!!!!here it does not break and return.

}

}

Maybe should not return inside a loop.

5. exists() for ordinary array

if (grep {$_ eq $val_to_search} (@val_list))

{}

6. Learn a lesson from

unshift @sep, "[".$tpart."_line".$tline_num."_field0";

7. ' value_var = 'nihao_string

This kind of problem, is because there is a 'r' at the line end.

8. In perl 4, you have to modify by this:

foreach ($list as $key => $val)

{

$list[$key] = 'something else';

}

9.Can't locate .pm, @INC contains...

Sulution: use the following to refer the .pm

use lib 'directory to lib';

10.perl Can't locate object method "new" via package

Check the 'package' line in your module, and make sure that it _exactly_ matches (including case) the name in the 'use' statement.

11. You have to refer a class member like this:

my $attributes = $self->{_attributes};

$indelimiter and $delimiter = $indelimiter;

while (my ($key, $val) = each(%$attributes))

=================================================

1 No matter whether you export variable or not, the variable defined in a module is accessiable always outside by $ModuleName'var1. in contrast to sub, you have to export it if want it to be public.

各种平台下Perl 模块的安装方法

Perl 到了第五版增加了模块的概念,用来提供面向对象编程的能力。这是 Perl 语言发展史上的一个里程碑。此后,广大自由软件爱好者开发了大量功能强大、构思精巧的 Perl 模块,极大地扩展了 Perl 语言的功能。CPAN(Comprehensive Perl Archive Network)是 Perl 模块最大的集散地,包含了现今公布的几乎所有的 perl 模块。

几个主要的 CPAN 站点有:

国内:

最新更新请查阅 http://cpan.org/SITES.html (推荐)

ftp://mirrors.hknet.com/CPAN 模块镜像

http://mirrors.dayouit.com/CPAN/ 网页镜像

http://cpan.linuxforum.net/ 网页镜像

国外:

http://www.cpan.org/ http://search.cpan.org (推荐)

安装方法

我在这里介绍一下各种平台下 perl 模块的安装方法。以安装DBI模块为例。

Linux/Unix下的安装方法:

Linux/Unix 下安装 Perl 模块有两种方法:手工安装和自动安装。第一种方法是从 CPAN 上下载您需要的模块,手工编译、安装。第二种方法是使用 CPAN 模块自动完成下载、编译、安装的全过程。

手工安装的步骤:

从 CPAN 下载了 DBI 模块 1.13 版的压缩文件 DBI-1.13.tar.gz,假设放在 /usr/local/src/ 下。

cd /usr/local/src

解压缩这个文件,这时会新建一个DBI-1.13的目录。

tar xvzf DBI-1.13.tar.gz

换到解压后的目录: cd DBI-1.13

生成 makefile:perl Makefile.PL

生成模块:make

测试模块(这步可有可无): make test

如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。

安装模块前,先要确保您对 perl 5 安装目录有可写权限(通常以 su 命令获得),执行:

make install (mysql服务要正在运行)

现在,试试 DBI 模块吧。如果下面的命令没有给出任何输出,那就没问题。

$>perl -MDBI -e1

上述步骤适合于 Linux/Unix 下绝大多数的 Perl 模块。可能还有少数模块的安装方法略有差别,所以最好先看看安装目录里的 README 或 INSTALL。

使用 CPAN 模块自动安装:

安装前需要先联上网,并且您需要取得root权限。

perl -MCPAN -e shell

初次运行CPAN时需要做一些设置,如果您的机器是直接与因特网相联(拨号上网、专线,etc.),那么一路回车就行了,只需要在最后一步选一个离您最近 的 CPAN 镜像站点。例如我选的是位于国内的ftp://mirrors.hknet.com/CPAN 。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。下面是 常用 ppm 命令。

获得帮助

cpan>help

列出CPAN上所有模块的列表

cpan>m

安装模块,自动完成DBI模块从下载到安装的全过程。

cpan>install DBI

退出

cpan>quit

Win32下的安装方法:

在 Win32 下,建议使用 ActiveState 的 Perl for Win32,即ActivePerl。ActivePerl 的主页在:

http://www.activestate.com/ 。

在 Win32 下,比较容易的是使用专门为 ActivePerl 定制的 Perl 模块。类似于 CPAN 模块,ActiveState也开发了一个自动安装工具叫做 PPM(Perl Package Manager)。

最通常的安装方法是:

首先联上网,在 dos 命令行下启动 ppm

ppm

获得帮助

PPM>h

列出已安装的 DBI 模块信息

cpan>query DBI

搜索 cpan 所有匹配 DBI 的模块

cpan>search DBI

安装模块,自动完成 DBI 模块从下载到安装的全过程。

PPM>install DBI

退出

PPM>q

如果您的机器位于防火墙之后,通过 http 代理上网,那么可以使用下面的方法。

设定环境变量 HTTP_proxy

C:chunk137895620chunkgt; set HTTP_proxy=http://proxy:8080

如果你的代理需要用户名和密码,你还要设定环境变量: HTTP_proxy_user 和 HTTP_proxy_pass

安装 activeperl 不包括的模块

如果 ppm 没有某个 CPAN 的模块,只要这个模块不需要编译(没有使用 C 等)那你可以把这个模块从 CPAN 下载,解压然后放到你的 activeperl 的库路径里, perl -e "print join @INC" 显示出 perl 的库路径。

activeperl 里不包括所有的 CPAN 模块,其他地方可能提供这些模块的下载,

比如在 activeperl 5.8 的 GD 模块安装请使用如下命令:

>ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd

activeperl 5.6 的 GD 模块安装请使用如下命令:

>ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/GD.ppd

其他 activeperl 模块下载地址请参照 Perl 学习指南 。

以上较为详细地描述了各种平台下 Perl 模块的安装方法。希望能够帮助国内 Perl 爱好者们通过使用现有大量优秀的 Perl 模块,避免重复劳动,提高效率,更好发挥 Perl 语言的强大威力。

ref: http://blog.csdn.net/fanchuan0077/archive/2008/10/15/3080679.aspx

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7916042/viewspace-1028786/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7916042/viewspace-1028786/