Perl是典型的脚本语言,短小精悍,非常容易上手,尤其适合处理文本,数据,以及系统管理。它在老一辈的生物信息学分析人员中非常流行,出于历史遗留原因大家肯定会或多或少地接触 Perl,即使你再怎么推崇Python或者GO等新兴编程语言。
在看书的同时,你必须记住和熟练使用的知识点是下面这些:
$ 表示单个变量
用单双引号区别,q(),qq()
@ 表示多个变量组成的数组,qw()
% 表示关系型变量-hash
变量不严格区分类型,没有int/float/double/char
这样的概念
三种变量都有对应的操作技巧:
简单变量的操作函数
Numerical operators: <, >, <=, >=, ==, !=, <=>, +, *
String operators: lt, gt, le, ge, eq, ne, cmp, ., x
数组操作(pop/push/shift/unshift/splice/map/grep/join/split/sort/reverse
)
hash操作方式
(keys,values,each,delete,exists
)
具体需要在实战里面体会:http://www.biotrainee.com/forum-90-1.html 生信人必练的200个数据处理任务(欢迎大家去练习)
变量内容交换,字符型转为数值型,字符串转为字符数组,字符串变量,heredoc,字符串分割,字符串截取,随机数生成,取整,各种概率分布数,多维矩阵如何操作,进制转换,hash翻转,数组转hash
$_ $, $0 $> $< $! $. @ARGV @F @_ @INC %ENV %SIG
)
。外表上看起来都是一个$ @ %符号后面加上一大堆的奇奇怪怪的字符,表示一些特殊变量,这也是perl语言饱受诟病的原因。但是有些非常重要,懂了它之后写程序会方便。下载一个表格,里面有近100个预定义变量需要学习的。if ... elsif ... else ...
unless/while/next/last/for/foreach
while(<>){
#do something !
}
这是我最喜欢的一个程序模板,读取文件,根据需要处理文件,然后输出。需要实现非常多的功能,然后就可以自己总结脚本技巧,也能完全掌握perl的各种语法。在生物信息学领域,需要实现的功能有!
perl -p -a -n -a -l -i -F -M
)use/die/warn/print/open/close/<>/
数学函数:sin/cos/log/abs/rand/srand/sqrt
字符串函数 :uc/lc/scaler/index/rindex/length/pos/substr/sprintf/chop/chomp/hex/int/oct/ord/chr/unpack/unencode
defined/undef
STDIN,STDOUT,STDERR,ARGV,DATA,
)
系统文件管理(mkdir/chdir/opendir/closedir/readdir/telldir/rmdir/
)如果你感觉学的差不多了,就可以下载一些复习资料,查漏补缺: http://michaelgoerz.net/refcards/perl_refcard.pdf https://rc.hms.harvard.edu/training/perl/Perl%20Cheat%20Sheet.pdf https://www.cheatography.com/mishin/cheat-sheets/perl-reference-card/ http://www.catonmat.net/download/perl.predefined.variables.pdf http://www.erudil.com/preqr.pdf https://www.cs.tut.fi/~jkorpela/perl/regexp.html https://support.sas.com/rnd/base/datastep/perl_regexp/regexp-tip-sheet.pdf
做一个调查吧,做生物信息数据处理的你~
最后,致敬创造了perl这个编程语言的Larry Wall !