Perl¶
更新于: 2020-09-14
内容简介
Perl 是老牌的脚本语言,也是最早的广泛应用在生物信息学软件开发中的语言。虽然近年来像python,R等其他语言越来越多的应用到生物软件中,但是仍然有许多老牌的生信专家在使用perl语言,初步了解基本的perl语法可以帮助理解代码,或者自己开发简单的流程脚本。
基本语法¶
1. 数据类型¶
# 变量赋值
$x = 100;
$var = "my data is over";
# 数组赋值
@myarr = (1, 2, 3, 4, 5);
print @myarr[0]; # 1
print @myarr[4]; # 5
# 哈希,相当与python的字典
%dict = ('t1' => 100, 't2' => 300);
print %dict{'t1'}; # 100
字符转义
转义字符 | 含义 |
---|---|
\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\a | 系统响铃 |
\b | 退格 |
\f | 换页符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\0nn | 创建八进制格式的数字 |
\xnn | 创建十六进制格式的数字 |
\cX | 控制字符,x可以是任何字符 |
\u | 强制下一个字符为大写 |
\l | 强制下一个字符为小写 |
\U | 强制将所有字符转换为大写 |
\L | 强制将所有的字符转换为小写 |
\Q | 将到\E为止的非单词(non-word)字符加上反斜线 |
\E | 结束\L、\U、\Q |
2. 条件判断¶
# if 结构
if( $i < 100){
printf "the result is $i";
}
# if else 结构
if( $i < 100){
printf "the result is $i";
}else{
printf "wrong number";
}
# if elsif else 结构
if( $i == 100 ){
printf "a";
}elsif( $i == 200 ){
printf "b";
}else{
printf "c";
}
# switch
use Switch;
$var = 10
switch($var){
case 1 {print "yes"}
case 5 {print "no"}
case 10 {print "what?"}
else {print "wrong"}
}
# 三元表达式
$t = 2000
$current = ($t == 2000)?"Y":"N"; #Y
3. 循环结构¶
# for 循环
for($i=0;$i<10;$i=$i+1){
print "loop $i\n";
}
# while 循环
$i = 0
while($i<10){
printf "i is: $i\n";
$i = $i + 1;
}
# do...while 循环
$a = 10;
do{
printf "a 的值为: $a\n";
$a = $a + 1;
}while( $a < 15 );
# foreach 循环
@list=(1,2,3,4,5)
foreach $i (@list){
print "i is: $i\n";
}
4. 函数使用¶
5. 读写¶
# 打开file.txt
open(DATA, "<file.txt") or die "file.txt 文件无法打开 !";
# 读取文件句柄DATA
while(<DATA>){
print "$_";
}
# 关闭文件
close(DATA) || die "无法关闭文件";
# 读写标准输入输出
$data=<STDIN>
print "$data";
6. 正则表达式¶
if($data =~ m/^something/){ ... }
# 匹配终端输入,匹配成功则输出
foreach (<STDIN>){
chomp;
if (/perl/){
print "$_ was matched 'gao'\n";
}
}