perl脚本学习指南--读书笔记
undef默认未定义字符,perl里面没有NULL,defined($x)函数:如果参数为undef返回false
qw(csphygeo)类似于(“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更加强大
文件句柄:openCONFIG,">>:utf8","filename"ordie"failed:$!",die会抛出异常,产生输出,closeCONFIG;
使用文件句柄:类似while(<CONFIG>)读取文件;改变默认输出文件,selectCONFIG;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&&$acmp$b}@array
智能匹配符:~~:匹配hash的key,数组是否相同
given-when语句:类似switch,有continue和break;
system加命令,去执行子进程;exec跑到另一个进程去,perl不再执行;反引号可以捕获返回值;
支持fork多进程;defined(my$pid=fork)ordie"$!";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中每个元素;均返回列表
相关文章
- 07-Nginx日志切割-通过sh脚本手动切割日志
- 图文详解多种漏洞配合利用--getshell(附脚本)
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
- 零基础一次学通4种数据库的SQL语言--脚本
- Linux脚本实现快速获取指定日期(linux脚本日期)
- 脚步终结:Linux 脚本之旅(linux脚本终止)
- Linux执行Perl脚本:一步一步指导(linux执行perl)
- 用PHP和Linux运行脚本(phplinux脚本)
- asp中一段防SQL注入的通用脚本