perl脚本学习指南--读书笔记

所属分类: 脚本专栏 / perl 阅读数: 508
收藏 0 赞 0 分享

undef 默认未定义字符,perl里面没有NULL,defined($x)函数:如果参数为undef返回false

qw(cs phy geo) 类似于 (“cs”, "phy", "geo")列表可以赋值给数组@array

数组操作符:pop,push操作末尾,shift,unshift操作开头,reverse逆序,@array = sort @array;

foreach @array{print $_;}打印数组;$_是一个很强大的默认变量

each操作,返回一对@array的(index, value),用在while循环中

perl有一道自动适应标量和列表上下文

sub定义子程序(函数),参数会在@_数组中,调用程序可用&符号,不与默认函数冲突可省略,可在函数中定义该

函数的持久私有变量,用state标识,每次调用函数时,该变量保持上次变化

my限定变量的范围为当前作用,一般定义变量都用my

<STDIN> 按照行读取输入文件,默认<> 会读取参数列表的所有文件,对于每行会以\n结尾,可以用chomp去掉\n

printf可以格式化输出,sprintf更加强大

文件句柄:open CONFIG, '>>:utf8', 'filename' or die "failed : $!",die会抛出异常,产生输出,close CONFIG;

使用文件句柄:类似while(<CONFIG>)读取文件;改变默认输出文件,select CONFIG; print "123" 到CONFIG文件,可替换默认STDERR

hash数组:key、value数组;可以赋值给数组,展开hash;reverse变成value=>key:%EVN环境变量

keys %hash返回keys数组,values %hash返回values数组;each返回K、V;exists、delete函数

强大的正则表达式:\A表示开头;\z表示结尾;/s匹配任意空白;括号可以捕获变量$1,存续到下次匹配成功;

不捕获模式:/(?:bronto)?aaaa(bb|CC)/此时$1 代表bb或者CC;/(?<name1>\w+)/命名捕获,$+{name1};

自动捕获变量:$`匹配前 $&匹配到的 $'匹配后的变量;/xxxx/p开启捕获变量:高版本${^MATCH}

s///替换,类似于sed,支持捕获$1;\U转换为大写

split /正则/, $string:拆分字符串为数组;join函数,split的逆过程;

非贪婪量词:+?,*?,{8,}?,将不进行贪婪匹配;/i忽略大小写,/m匹配换行符

$^I = ".bak"可以更新文件,打开文件时候以filename.bak打开,并写回原文件

unless(con):类似if(!con);until:条件为假,重复执行;last类似于break;next类似continue;redo回到循环体的开头(new);可加标签

各种文件测试符-e,-M测试文件各种信息;stat $filename返回文件的一系列信息;my @files = glob “*”:当前路径所有文件名

字符串函数:index,substr;高级排序@res = sort {$a<==>$b && $a cmp $b} @array

智能匹配符:~~:匹配hash的key,数组是否相同

given-when语句:类似switch,有continue和break;

system加命令,去执行子进程;exec跑到另一个进程去,perl不再执行;反引号可以捕获返回值;

支持fork多进程;defined(my $pid = fork) or die "$!"; unless($pid){子进程工作};支持发送接收SIG;

切片:($first, $last) = (sort @array)[0,-1],数组、hash都可以;eval捕获错误不至于返回;

grep:my @array = grep {$_ % 2} 1..1000;奇数数组;my @array = map {&big_money($_)} @data; 操作data中每个元素;均返回列表

更多精彩内容其他人还在看

perl操作MongoDB报错undefined symbol: HeUTF8解决方法

这篇文章主要介绍了perl操作MongoDB报错undefined symbol: HeUTF8解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

cpanm安装及Perl模块安装教程

这篇文章主要介绍了cpanm安装及安装Perl模块教程,本文先是给出了cpanm的安装教程,同时给出了Perl模块的安装实例,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows和Linux系统下perl连接SQL Server数据库的方法

这篇文章主要介绍了Windows和Linux系统下perl连接SQL Server数据库的方法,本文详细的讲解了Windows和Linux系统中perl如何连接Microsoft SQL Server数据库,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl脚本实现检测主机心跳信号功能

这篇文章主要介绍了Perl脚本实现检测主机心跳信号功能,本文代码也可作为perl串口通信的实例,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl中使用File::Lockfile确保脚本单实例运行

这篇文章主要介绍了Perl中使用File::Lockfile确保脚本单实例运行的方法,本文直接给出实例,方法非常简单,需要的朋友可以参考下
收藏 0 赞 0 分享

7个perl数组高级操作技巧分享

这篇文章主要介绍了7个perl数组高级操作技巧,本文讲解了数组去重、数组合并、查找最大值、列表归并等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

perl面向对象实例

这篇文章主要介绍了perl面向对象实例,本文讲解了一个类只是一个简单的包、对象仅仅只是引用、一个方法就是一个简单的子程序等内容,并给出了一个简单示例,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl eval函数使用实例

这篇文章主要介绍了Perl eval函数使用实例,本文讲解了eval 函数的两种使用方式,并给出3个使用实例,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl函数(子程序)学习笔记

这篇文章主要介绍了Perl函数(子程序)学习笔记,本文讲解了函数定义、函数返回值、函数参数传递等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl中的控制结构学习笔记

这篇文章主要介绍了Perl中的控制结构学习笔记,本文讲解了条件语句if、条件语句unless、循环语句while、循环语句until、for循环、foreach语句、循环控制等内容,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多