生信自学网-速科生物-生物信息学数据库挖掘视频教程

主页 > 生信编程 >

生信应用perl语法基础

Perl 最初是Unix 系统管理员的工具,平日用来处理无数繁琐的事物。时至今日,Perl 已发展成一套功能齐备的程序语言,横跨所有的操作平台,其用途包括Web 程序设计、数据库操作、XML 处理以及系统管理等。在Perl 擅长处理的问题中,其中约有90%与文本处理有关,所以Perl 拥有优异的文本处理能力

Perl 有强大的字符串处理能力,尤其是在正则表达式上的应用、语法及程序结构等方面,perl 能提高字符串处理的速度。
如果需要学习更多生信编程方面的课程,生信自学网为大家准备了几门课程:
《Perl语言在生信中的应用》
《R语言生信绘图实操》

一、Perl 语言特点
Perl 不随意限制数据的大小,只要你有充足的内存。递归的深度也不受限制。关联数组使用可以根据需要扩展以避免性能衰退。Perl 能利用复杂的模式匹配技巧来快速扫描大量数据。除了善于处理文本,Perl 也能处理二进制数据[2]。Perl 语言的优点:(1)强大的正则表达式和模式匹配功能(接近理想的正则表达式语言);(2)复杂灵活的数据结构(Array of Array,Array of Hash,Hash of Array,Hash of Hash 等);(3)Unicode 支持(相对AWK 与C)

Perl 语言的缺点:(1)动态类型语言,不是很可靠;(2)自然语言,是优点也是缺陷,使得Perl 语言代码可能晦涩难懂;(3)智能语言,是优点也产生不足:根据上下文解释编程者之意,可能产生臆断;也因此产生种种编程陷阱;(4)不是很优美。多种方法做事,有时会让编程者无所适从;(5)性能问题。Perl 灵活的数据结构和处理性能通常不是很高(相对C/C++),若需要高性能的处理有时需要使用其它语言重写。
perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用。

常用知识点总结:
·        perl语法类似于C语言(perl源于Unix),语句由逗号划分,代码层次使用花括号{}划分,但是不必声明变量类型;
·        标量变量($name),数组(@name),哈希结构(%name),类型标识符,文件句柄没有标识符;
·        哈希结构可以使用列表创建,但不要以为它也是由圆括号括起来的;在使用键时,用花括号。(特别注意)
·        数字之间比较用(==、>=、<=、!=),字符串之间比较则用(eq、gt、lt、ge、le)
·        print函数,不一定需要括号。几种情况:print $name(直接输出) ;print ‘$name’(基本不用,错误的,原样输出);          print “$name”(有时会用,会自动替换); print 函数在做文件输入时(文件句柄),不能有逗号,只能用空格。
·        @_ 是函数传参时放置参数的数组,可以从中取实参;$_ 是默认参数的意思,指的是在不指定的情况下,程序处理的上一个变量;shift 是将数组的第一个元素 $array[0] 移走, 并将这个元素回传(return) (堆栈一节有详细讲解)。
·        shift函数是取数组的第一个元素,缺省就取@_的第一个函数,这句一般用在程序的开头,用于接收程序的参数,或者子函数的开头,用于接收子函数的参数。
·        句柄和文件的关系,文件必须被打开,并赋与句柄,才能操作;有的句柄可以直接使用,如STDIN、STDERR;广义上,标量变量就是一种代表数据的句柄。
perl中数值和字符串可以随意的使用递增和递减运算符。

如果需要学习更多生信编程方面的课程,生信自学网为大家准备了几门课程:
《Perl语言在生信中的应用》
《R语言生信绘图实操》

(责任编辑:伏泽   微信:18520221056)

森莘老师微信二维码