Perl 学习笔记
一、Perl基础
1.       常用命令
1.1   perl –v 显示Perl版本,测试Perl是否安装
1.2   perldoc –tf <函数名> 查找函数信息
1.3   perldoc –q <key> 查找FAQ
1.4   perl 是一种解释型语言,不需要编译;Python是虚拟机语言,要编译。
 
二、Perl的构件:数据,字符串
1.       转义字符用 /<symbol>表示
2.       qq,q 运算符,使用非字符或数字作为限定符
3.       标题变量 $<key>
4.       chomp 删除换行符
5.       <stdin> 输入设备
6.       格式化字符串 直接在字符串中引用标量
 
三、控制程序流
1.       空 undef
2.       last,redo,next都可以跟标号
3.       exit 0 正常退出程序
 
四、列表/数组
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 @_;
 
五、文件操作
1.       die函数
2.       $!用来在die函数中返回操作系统的出错消息
3.       warn
4.       defined <>undef
5.       $_ foreach读出的系统变量
例:
open(MYFILE,"c:/manifest.mf")||die "err:$!";
 
六、正则表达式
1.       正则表达式中的元字符:
$ { } # ^ @ | ? . + * [ /
2.       将模式串括起来的字符可以是任意的元字符;除非使用非斜扛分隔符,否则可以不使用m。
3.       用[ ]表示字符类
4.       通配符{最少出现次数,最大出现次数
5.       特殊字符类
/w 单词字符
/W 非单词字符
/d 数字
/D 非数字
/s 空白字符
/S 非空白字符
6.       选择 |
7.       位置通配符
^ 一行开始
$ 一行结尾
8.       替换
s/$searchpatten/replacement/;
9.       修饰符
/g 重复多次匹配
/I 忽略大小写
 
 
七、哈希结构
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.   查找数组中的所有唯一元素
 
八、函数
1.       声明函数
sub subFun{
 for($i=0;$i<10;$i++) {
    print $i;
 }
Return(true);
}
2.       参数
@_表示隐含参数列表
$_[2]表示第二个参数
($hit,$bats)=@_
例:
sub paramFun{
 ($a,$b)=@_;
 print "/na=$a";
 print "/nb=$b";
}
3.       声明函数内变量
My $y=500;
 
 
九、其它函数和运算符
1.       index string , substring
2.       rindex string , substring
3.       substr string , 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格式化输出函数
 
十、操作文件和目录
1.       opendir TEMPDIR,’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.   stat filename; stat filehandle 返回文件句柄信息
# 打开目录下的所有txt文件
 
opendir(TD,"C:/TEMP")|| die "error:$!";
@FILES=grep(//.txt$/,readdir TD);
foreach(@FILES){
 print $_;
 open FILEH,"C:/TEMP/$_" || die "can't open file:$!";
 foreach (<FILEH>){
    print scalar($_);
 }
}
 
@files=glob("C:/TEMP/*.txt");
foreach(@files){
 
 print $_;
}
 
十一、系统互操作性
1.       system 调用操作系统命令,正常返回0; 返回1.
 
十二、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.       读写锁控制: 设置一个信标文件
 
十三、引用和结构
1.       创建对变量的引用
$ref=/$a;
2.       输出地址引用的值
Print $$ref
3.       对数组和哈希表的引用
$$a[0]
@$a
%$a
$$a{xx}
4.       列表中的列表
@list_of_lists={[qw(xxx)], [qw(ddf)]};
5.       遍历数组
foreach my $outer (@list_of_lists){
 print $outer;
 foreach my $inner(@($outer)){
    print $inner;
 }
}
 
十四、使用模块
1.       use 引用其它模块
例: cwd     获取环境变量
        Strict    改变程序运行特性,使之对引用和裸单词变得严谨
十六、Perl历史
定位于解释型语言,适合作为CGI语言
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐