perl
读书笔记
大骆驼读书笔记
第一章 perl概述
列表转换为标量
用[]来实现这个功能,不能直接用(); #!/usr/bin/perl -w use strict; use warnings; my %hash; $hash{"a"}=["b","c","d"]; print $hash{"a"}[0];
散列转换为标量
用{}来实现 #!/usr/bin/perl -w use strict; use warnings; my %hash; $hash{"A"}={"A1"=>["A11","A12","A13"],"A2"=>["A21","A22","A23"],"A3"=>"A31","A32","A33"}; print $hash{"A"}{"A1"}[0];
文件句柄
STDIN 是我们程序的标准输入,STDOUT 是标准输出。STDERR是一个额外的输出途径,这样就允许你在将输入转换到你的输出上的时候进行旁路。
文件测试操作符
-d $a 测试$a中命名的文件是否为目录 example: mkdir "./bwa" unless (-d "./bwa"); -e $a 测试$a中命名的文件是否存在 example:unless (-e "./a1.R1.fq"){operate} #如果不存在a1.R1.fq这个文件就执行{}内的操作
真真假假
- 除了""和"0",所有字符串为真 - 除了 0,所有数字为真 - 所有引用为真 - 所有未定义的值为假
程序控制
if 和 unless
if 后为真 则往下执行; unless 后为假则往下执行;可以理解为unless后为真,啥也不做;为假执行后边的。
循环while和untill
类似于if和unless,首先,检查条件部分,如果条件满足(while 语句是真, until 是假),执行后面代码
for
foreach
第二章 集腋成裘
shift用法(取出数组第一个元素,并缩减数组)
#!/usr/bin/perl -w use strict; use warnings; my @arr=(1..5); print shift @arr; print scalar @arr; @ARGV = ('-') unless @ARGV; # 若为空则假设为STDIN while( @ARGV) { $ARGV = shift @ARGV; # 每次缩短@ARGV if( !open(ARGV, $ARGV)) { warn "Can't open $ARGV: $!\n"; next; } while (<ARGV>) { ... # 处理每行的代码 } }
chdir $path(指定用户工作路径,相当于unix的cd)
Author: 王英珍
qq: 296085360
email:wangyz666@outlook.com