Perl语言入门学习笔记-8

上一篇 / 下一篇  2007-10-26 19:36:57 / 个人分类:编程吧

51Testing软件测试网bN1iY:Z)z

Perl模块51Testing软件测试网bn[h f&f

'v6Z2J[0Ay0Perl模块可以用Perl编写,也可以用其他语言例如C、C++编写。51Testing软件测试网.VK3W8`@
例如Digest::MD5模块,由一组功能强大的校验和检查(checksum)函数组成,使用了大量低级位运算。如果用Perl来实现(确实有Digest::Perl::MD5),速度会很慢,所以用C来实现以提高效率。51Testing软件测试网&~H3T\I-J;H9q
Perl模块有两种发布方式:一类模块随附在Perl包中,一类模块从CPAN获得自行安装。
51Testing软件测试网y@\N+a*j

51Testing软件测试网3Dm*NpB

+查询模块51Testing软件测试网)y M!}_8FDP)P
1. 在
http://www.cpan.org/authors/id/P/PH/PHOENIX/下下载inside程序,查询系统中已经安装的模块.51Testing软件测试网zCB d7e
2. 试着用perldoc来阅读模块的文档,如果该模块未被安装,会出现一些提示信息。
lE*`/uA&X4p9d0$perldoc CGI
51Testing软件测试网rM)ck'bw

5]9R.S^4Z~0+安装模块51Testing软件测试网mk0bgUC1JD,M
http://search.cpan.org/下搜索需要的模块,然后参考perlmodinstall在线文档的说明来安装。51Testing软件测试网 u @mD:e]#i
或者下载模块后查看README和INSTALL文件,按照其指示来安装。
"{-J!JUf#|!n0如果这个模块使用了ExtUtils::MakeMaker模块(它会根据系统上安装的Perl信息创建适当的模块安装程序),可用如下方式安装:
M.w}jKp!su\0$perl Makefile.PL PREFIX=/home/enigma
} r zI,u7I0$make install
:A7W/^,|]Rt0或者使用Module::Build模块编译并安装指定模块:51Testing软件测试网'@k!D `'t
$perl Build.PL
1^ t g9k3Q8M)u V1g9W-q0$./Build install51Testing软件测试网 p YTwV2K:Z&F5rG
由于模块的关联性和相互依赖性,实际安装过程会比较复杂。可以使用Perl包管理器来安装模块,或使用Perl自带的CPAN.pm。
?y$f#\1a"_$E-P0$perl -MCPAN -e shell  #启动CPAN自己的shell

}Mx"Tk![j+u0

2z`8G!]A6|D0+使用模块
2lj?nRA6\$K0#!/usr/bin/perl -w
51Testing软件测试网!b;kw8c)H K

51Testing软件测试网PY-@R)D%G5V

use DBI;  #使用数据库接口模块51Testing软件测试网'u V f:Ac/m8j
use DBD::Oracle;  #使用数据库驱动模块

0P~j-p%sK"t051Testing软件测试网+m w)_M3f7`9M*|C9A){

$dbh=DBI->connect($data_source, $username, $password)
'Hq:b N#izQ*j0  or die "Could't connect to database:".DBI::errstr;
OAk8[C}].AJ0#连接数据库

.o^UK{0

:@M-hRj(Tw!bRa0my $data_source="dbi:Oracle:dbname=$DBNAME";51Testing软件测试网|q&{HU1QRg%S;m D
#$data_source包含了DBD的特定信息

0Oi2UN#Fv4E0

:H2^\9G+g)F3f3]-c,l0$sth=$dbh->prepare("SELECT * FROM foo WHERE bla");51Testing软件测试网,t\+M"[8er K~:?5n
#准备查询
'I f!N7~ iK0$sth->execute();
j`2V%q6Yz0#执行查询51Testing软件测试网 S yl3lR
@row_ary=$sth->fetchrow_array;51Testing软件测试网(SH$X3]&OL4eJ
#读取查询51Testing软件测试网 t~:wubYG Ru[
$sth->finish;
51Testing软件测试网([!@I)Z+pys/PU ~~

51Testing软件测试网$d~ s5} }4y)\

$dbh->disconnect();51Testing软件测试网[p*e+DKZ)nv N VFl'N
#断开数据库

%z.qt)i:f.f a+x051Testing软件测试网$W b2OL)]m

+一些常用模块51Testing软件测试网 c_iG1e KF
++CGI模块51Testing软件测试网P7Gx!QO+i]
可用来编写Web服务器上运行的CGI程序
2f\ H2d0i3f0++Cwd模块
3^7{1ZG\)N+{0该模块提供了cwd函数,可以返回当前工作目录的名称。

2~"ML6o/I0

Y];Hw6t3G'pF,`0use Cwd;51Testing软件测试网)`i5g)b1?
my $directory=cwd;
51Testing软件测试网c:Ny^%E&VM

51Testing软件测试网7Pn8eTh

++Fatal模块51Testing软件测试网/i*to.^I\*OD
不必每次在open或chdir之后附加"or die",在Fatal模块后声明的函数可以自动检测是否执行失败并给出错误信息。

6QkS){+d)L @.K:s051Testing软件测试网i A+uQ b mMHQ

use Fatal qw/ open chdir /;51Testing软件测试网4z@+vFvH5r
chdir '/home/merlyn';

x2BYN'@~{051Testing软件测试网s/G/Hq~|9d0TU

++File::Basename模块
o v1oA$H%kA0该模块可以从文件全名中提取基名,会判断使用的系统并使用该系统默认的文件名规则。

\~9f(Bv051Testing软件测试网(ACgV4b

use File::Basename;
O'\/h.R.m0my $name="/usr/local/bin/perl";
Y)s'Kea/`J0my $basename=basename $name;51Testing软件测试网CtOh%Z&TH
my $dirname=dirname $name;

H1`(Rl zB v[9X051Testing软件测试网-A qn%U6|8t;p

use File::Basename qw/ basename dirname /;51Testing软件测试网0G})Pta1h
#在模块声明中加入import list,只选用模块中的部分函数。有默认的导入列表。
~ga9JW R0#导入函数可以使用简短的函数名,否则必须使用全名来调用函数

*sd;Y{l B051Testing软件测试网p`8H9Uz v

use File::Basename qw/ /;51Testing软件测试网\$R{1Ob(R*Y
my $name="/usr/local/bin/perl";
:s7t`5^A$X0my $basename=File::Basename::basename $name;
51Testing软件测试网PCU~%Z4~$L~0l

|,L/P9e1}(iN*jc0......
j0ht O X)Qsk*JF#s0
51Testing软件测试网 ]4f2W{8Ld


TAG: 编程吧

 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 22434
  • 日志数: 38
  • 文件数: 1
  • 书签数: 3
  • 建立时间: 2007-08-14
  • 更新时间: 2008-05-01

RSS订阅

Open Toolbar