Perl 学习笔记-模块
1.Perl模块介绍
2个来源, 一个是随Perl发行版本一同打包, 只要安装了Perl就可以使用; 另一种是需要从CPAN上下载,自己安装. 寻找模块之前, 先检查系统上是否已经安装过了, 比如, 在命令行下输入: perldoc CGI 就会出现文档说明, 说明已经存在CGI.pm模块了.
安装模块略过.
2.使用简单模块
use File::Basename; #在程序开头用use命令声明
use File::Basename qw/basename/; #只导入模块中的basename函数
File::Basename::basename $mypath; #加上模块全称调用
use File::Spec; use File::Basename; $old_name = "/usr/bin/perl"; $dirname = dirname $old_name; $basename = basename $old_name; $new_name = File::Spec->catfile($dirname,$basename); print "$old_name\n"; print "$new_name\n"; rename ($old_name,$new_name) or warn "Can't rename '$old_name' to '$new_name': $!";
3. 使用CGI模块
CGI模块有两种风格: 函数接口和面向对象接口, 现在简单讨论前一种.
# 这段代码解析CGI输入, 并以纯文本的方式来显示输入字段的名称和值 use CGI qw(:all); #标签写法, 标示导入全部函数 print header("text/plain"); #Content-Type: text/html; charset=ISO-8859-1 foreach my $param (param()){ print "$param: ".param($param)."\n"; }
# 这段代码输出HTML格式结果. use CGI qw(:all); print header(), start_html("This is the page title"), h1("Input parameters"); my $list_items; foreach my $param (param()){ $list_items .= li("$param: ".param($param)); }
CGI模块还能处理cookie信息, 页面重定向已经多重页面表单等...
4.数据库与DBI(数据库接口)
DBI没有内置在Perl中; 不管哪种常见的数据库,都可以使用相同的接口进行操作; 支持对ODBC的驱动操作; 安装DBI之后必须安装相应的DBD(数据库驱动程序) ,可以在CPAN上搜索. DBI是面向对象模块.
use DBI; # $data_source 指定要连接的数据库信息, 以及使用哪一种DBD作底层交互, 例如对PostgreSQL,驱动器是DBD::Pg模块 my $data_source = "dbi:Pg:dbname=name_of_database"; #PostgreSQL $dbh = DBI->connect($data_source, $username, $password); # 连接数据库后可以进行查询操作 $sth = $dbh->prepare("SELECT * FROM foo WHERE bla"); $sth->execute(); @row_ary = $sth->fetchrow_array; $sth->finish; # 完成工作后断开连接 $dbh->disconnect();