perl基础语法

一 some关键字
@ARGV 所有的输入参数被push进该数组
$_ 默认变量
foreach(@ARGV){
print $_
}
将打印出所有的输入参数
sub child_function{
……
$a = $a+ 1
}
$funciton_return = child_function ## $function_return = $a
子程序默认会返回子程序中最后得到的一个变量,当有return会返回return语句

state a #持久性私有变量,在子程序中使用这个关键字,每次调用子程序时,会使用上次保留下来的值
二 输入输出
@lines = \<\STDIN> #键盘标准输入
open FILEHANDLE, ‘< dino’ 打开文件句柄 ;< 只读 ;>只写会覆盖 ;>>只写不覆盖,写在文件末尾。
open LOG, ’ > :encoding(UTF-8)’, $file_name or die #特定编码
while(<\FILEHANDLE>){
print $_
}
foreach 和while是有区别的
foreach会直接将整个句柄的文件吃进内存,while会一行一行的吃进来
close FINEHANDLE
三 哈希
my %last_name(
‘hannan’ => ‘chenhn’
‘zishan’ => ‘xie’
)
函数 keys values each
my @k = keys %last_name
my @v = valus %hash
# key 的顺序不可预测,不过k[i] 会对应v[i]
四 正则
正则匹配修饰符
/m #多行匹配
/s #任意匹配字符 (.)可以匹配/n
/i #大小写无关
/x #加入空白符
/-?[0-9]+.?[0-9]*/0
/-? [0-9]+ .> [0-9]* /x 两者的匹配是一样的
锚位
\A 行开头 \z 行末尾
\b 单词边界 /\bdefine\b/ 只匹配define 不匹配tc_define
五 各种小细节

1. 1. 多 行 匹 配
while(<\FILEHANDLE>){
print $_
}
上述代码会将整个文件以\n换行符吃进来,无法进行多行匹配。
方法a : 改变行分割标志 undef $/ 这样做之后,while会将整个文件知道文件结尾作为行分割标志,吃进来。
方法b: m//m 使用m修饰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值