专家指导 Perl学习笔记

开发 架构
Perl的概念你是否熟悉,Perl是由LarryWall设计的,并由他不断更新和维护的编程语言,并且Perl具有高级语言(如C)的强大能力和灵活性。

本文和大家重点讨论一下Perl学习笔记,Perl是一种能完成任务的语言。从一开始,Perl就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。

 Perl学习笔记

一、Perl基础

1.常用命令
1.1perl–v显示Perl版本,测试Perl是否安装
1.2perldoc–tf<函数名>查找函数信息
1.3perldoc–q<key>查找FAQ
1.4perl是一种解释型语言,不需要编译;Python是虚拟机语言,要编译。

二、Perl的构件:数据,字符串

1.转义字符用\<symbol>表示
2.qq,q运算符,使用非字符或数字作为限定符
3.标题变量$<key>
4.chomp删除换行符
5.<stdin>输入设备
6.格式化字符串直接在字符串中引用标量

三、Perl控制程序流

1.空undef
2.last,redo,next都可以跟标号
3.exit0正常退出程序

四、Perl列表/数组

1.qw运算符声明列表
2.定义范围1..20
3.定义数组@<key>
4.引用数组元素$<key>[index]
5.查找数组大小$size=@array
6.$#foo***一个元素的索引号
7.localtime返回一个表示当前时间的时间元素列表
8.for,foreach$var(@array)
9.split函数
10.join函数
11.sort给数组排序
12.<=>飞船运算符
13.scalar函数,强制转换为一个标量放入标量上下文,返回放入的数量
scalar@_;

五、Perl文件操作

1.die函数
2.$!用来在die函数中返回操作系统的出错消息
3.warn
4.defined<>undef
5.$_foreach读出的系统变量
例:
open(MYFILE,"c:/manifest.mf")||die"err:$!";#p#

六、Perl正则表达式

1.正则表达式中的元字符:
${}#^@|?.+*[\
2.将模式串括起来的字符可以是任意的元字符;除非使用非斜扛分隔符,否则可以不使用m。
3.用[]表示字符类
4.通配符{最少出现次数,***出现次数
5.特殊字符类
\w单词字符
\W非单词字符
\d数字
\D非数字
\s空白字符
\S非空白字符
6.选择|
7.位置通配符
^一行开始
$一行结尾
8.替换
s/$searchpatten/replacement/;
9.修饰符
/g重复多次匹配
/I忽略大小写

七、Perl哈希结构

1.用%声明%hash=("k1","v1","k2","v2");
2.用=>分隔键和值声明%hash2=("k1"=>"v1","k2"=>"v2");
3.引用哈希值$hash{"k1"}
4.用keys检索哈希表的关键字
foreach(keys%hash){
print"$_\n";
}
5.用values检索哈希表中所有值
foreach(values%hash){
print"$_\n";
}
5.reverse%hash转换成列表,键值对换
6.哈希合并%h={%h1,%h2}
7.测试哈希值是否存在if(exists$hash(keyval))
8.删除哈希值delete$hash(keyval)
9.删除所有键值%hash={}
10.查找数组中的所有唯一元素

八、Perl函数

1.声明函数
subsubFun{
for($i=0;$i<10;$i++){
print$i;
}
Return(true);
}
2.参数
@_表示隐含参数列表
$_[2]表示第二个参数
($hit,$bats)=@_
例:
subparamFun{
($a,$b)=@_;
print"\na=$a";
print"\nb=$b";
}
3.声明函数内变量
My$y=500;

九、Perl中其它函数和运算符

1.indexstring,substring
2.rindexstring,substring
3.substrstring,offset,length
可用于替换字符串
4.tr/searchlist/replacelist/转换运算符
tr/a-z/A-Z/;把大写转换为小写
$num=tr/0-9//;计算数字的数量
5.=~运算符
代替默认环境变量
$b=$a=~s/a/b/;把$a中a替换为b,赋值给$b
6.printf,sprintf格式化输出函数#p#

十、Perl操作文件和目录

1.opendirTEMPDIR,’c:/’
2.readdir返回的文件名不包含路径名
3.closedir(TEMPDIR);
4.Glob函数查询文件返回的文件名带路径
5.grep查询文件返回的文件名不带路径
6.chdir
7.mkdir
8.rmdir只删除完全是空的目录
9.unlink删除目录下所有文件,并返回文件数量
10.rename
11.Example:
12.chmod赋予权限
13.statfilename;statfilehandle返回文件句柄信息
#打开目录下的所有txt文件

  1. opendir(TD,"C:/TEMP")||die"error:$!";  
  2. @FILES=grep(/\.txt$/,readdirTD);  
  3. foreach(@FILES){  
  4. print$_;  
  5. openFILEH,"C:/TEMP/$_"||die"can'topenfile:$!";  
  6. foreach(<FILEH>){  
  7. printscalar($_);  
  8. }  
  9. }  
  10.  
  11. @files=glob("C:/TEMP/*.txt");  
  12. foreach(@files){  
  13. print$_;  
  14. }  
  15.  

 

十一、Perl系统互操作性

1.system调用操作系统命令,正常返回0;返回1.

十二、Perl中DBM文件

1.DBM文件是与perl哈希结构联系在一起的文件结构。
2.将哈希结构与dbm关联起来
Dbmopen(hash,filename,mode);
3.each函数,对较大的哈希结构迭代操作
($key,$val)=each(%h);
4.open的限定符
<file只读
>file只写,不存在创建,重写
>>只写,创建,追加
5.随机读取文件
Seek(fileHandle,Offset,相对位置)函数
6.锁定UNIX和NT下的文件
Flock(FILEHANDLE,locktype);
FL_SH公共锁
FL_EX专用锁
7.读写锁控制:设置一个信标文件

十三、Perl引用和结构

1.创建对变量的引用
$ref=\$a;
2.输出地址引用的值
Print$$ref
3.对数组和哈希表的引用
$$a[0]
@$a
%$a
$$a{xx}
4.列表中的列表
@list_of_lists={[qw(xxx)],[qw(ddf)]};
5.遍历数组
foreachmy$outer(@list_of_lists){
print$outer;
foreachmy$inner(@($outer)){
print$inner;
}
}

十四、Perl使用模块

1.use引用其它模块
例:cwd获取环境变量
Strict改变程序运行特性,使之对引用和裸单词变得严谨

十五、Perl历史

定位于解释型语言,适合作为CGI语言

【编辑推荐】

  1. 深入剖析Perl面向对象编程
  2. 浅析Perl标量的操作符 
  3. Perl语言中的五大变量类型
  4. Perl面向对象编程的两种实现和比较
  5. Perl程序设计中的Perl用户函数(子程序)

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-06-02 09:45:02

SVN学习笔记

2010-07-15 09:10:08

Perl函数手册

2010-07-26 10:09:01

Perl split函

2010-07-21 13:53:07

Perl引用

2010-07-26 13:27:19

Perl多线程

2010-07-21 11:17:30

2010-07-23 12:23:49

Perl基础

2010-07-21 14:18:27

Perl函数

2010-07-21 11:04:44

Perl学习指南

2010-07-21 13:27:06

Perl模式匹配

2010-07-21 14:08:28

Perl命令行

2010-07-13 12:50:47

Perl变量

2010-07-15 10:07:29

Perl指令

2010-07-13 15:43:57

Perl语言

2010-07-19 09:08:38

Perl模块

2010-07-16 12:50:45

Perl语言

2010-07-26 10:51:26

Perl模式匹配

2010-07-20 15:18:41

Perl基本语法

2010-07-15 18:04:20

Perl模式

2010-07-16 17:38:12

Perl包
点赞
收藏

51CTO技术栈公众号