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();
-->
Perl 学习笔记-模块的更多相关文章
- perl学习笔记之:模式匹配,模块,文档
Perl语言的最大特点,也是Perl作为CGI首选语言的最大特点,是它的模式匹配操作符.Perl语言的强大的文本处理能力正是通过其内嵌的对模式匹配的支持体现的.模式通过创建正则表达式实现.Perl的正 ...
- Perl 学习笔记-标量数据
最近学习Perl, 准备看一遍入门指南,关键的东西还是记录下来,以便以后复习和查看参考. 笔记来自<<Perl语言入门第5版>> 1. 在Perl内部,不区分整数值和浮点数值, ...
- linux内核设计与实现学习笔记-模块
模块 1.概念: 如果让LINUX Kernel单独运行在一个保护区域,那么LINUX Kernel就成为了“单内核”. LINUX Kernel是组件模式的,所谓组件模式是指:LINUX K ...
- perl学习笔记(4)——动态加载
在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的, if($^O eq 'linux'){ use ...
- 【Perl学习笔记】1.perl的ref 函数
perl有引用的概念:一组数据实际上是另一组数据的引用.这些引用称为指针,第一组数据中存放的是第二组数据的头地址.引用的方式被用得相当普遍,特别是在面向对象的模块.函数的参数传递等常见.但perl对每 ...
- Perl 学习笔记-目标操作
1.在目录树中移动. 程序运行时会以当前工作目录作为相对路径的起点, 可以使用 chdir 操作符改变当前目录: chdir "/etc" or die "Can't ...
- Perl 学习笔记-高级控制结构
1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码; unless(<condition>){code...;} 等价于 if(<con ...
- Perl 学习笔记-列表和数组
笔记来自<<Perl语言入门第5版>> 1. Perl中列表指标量的有序集合,数组则是存储列表的变量, 这两个术语经常混用,不过更精确地说,列表指数据,而数组指变量.数组的表示 ...
- perl学习笔记——目录操作
在目录书中移动 chdir 操作副改变当前的工作目录.它和shell中cd命令类似: chdir ‘/etc’ or die “cannot chdir to /etc:$1”; 注意:工作目录不能更 ...
随机推荐
- Maven和Gradle的比较
Gradle和Maven都是项目构建工具,但是完全是两个产品,maven应该目前在java企业级开发中占的比重比较大,Gradle是后起之秀,Google的Android Stadio主推的就是Gra ...
- 20165226 实验三 敏捷开发与XP实践
实验三 敏捷开发与XP实践 实验目的 一.安装alibaba 插件,解决代码中的规范问题.在IDEA中使用工具(Code->Reformate Code)格式化代码,研究一下Code菜单,比较功 ...
- java http头信息
JAVA 从http请求头中获取Header信息: request.getHeader(),request.getHeaderNames(),request.getHeaders() Java获取Ht ...
- POJ 3061 Subsequence(尺取法)
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18145 Accepted: 7751 Desc ...
- 【学步者日记】C#使用线程
http://note.youdao.com/noteshare?id=2810300cdfa3f4d973792dcf30a31db9 System.Threading.Thread th; th ...
- PHP中使用mkdir创建多级目录的方法
function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))){ return false; ...
- PoJ 1595 PrimeCuts
Prime Cuts Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9339 Accepted: 3562 Descri ...
- nova volume-create的使用
处理cinder可以直接创建volume外,nova也是可以的 如: 可以看出创建一个名字为volume2的卷,大小为10G 把创建好的volume2卷直接挂在vm虚拟机上 如:先查看计算节点有几个v ...
- Django学习---自定义分页
自定义分页 简单例子: urls.py: from django.contrib import admin from django.urls import path from django.conf. ...
- npm上传包
npm上传包 向npm上传一个包是很容易的,只需要三步: 1.在npm官网注册一个账户,然后在cmd中登录账户 注:npm不要使用代理,直接连接 https://registry.npms.org/. ...