2018-11-10-Perl入门1

Perl基础知识介绍

Posted by DL on November 10, 2018

正所谓前人栽树,后人乘凉。

参考资料 曾健明 RUNBBO

1. Perl语言基础知识入门

1.1 Perl语言介绍

  • Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。

  • Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。

  • Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。

  • Perl的理念:There’s More Than One Way To Do It. (不只一种方法来做一件事)

1.2 Perl语言的发展史

Perl发展史

1.3 Perl的应用场景

  • 文本处理:工程领域数据处理、生物学数据处理

  • Web网站:如Yahoo、Amazon,Web页面也是文本文件,Perl有TCP/IP通信能力

  • 数据库处理:Perl语言有大量的拓展可以用来直接与各种主流数据库进行通信

  • 邮件处理和FTP功能自动化

  • 作图Circos:http://circos.ca/ (那种很酷炫但你看不懂的圈圈图)

  • 机器学习http://blogs.perl.org/users/sergey_kolychev/ (内有Machine learning in Perl的几篇博文)

  • 统计:只有想不到的,没有Perl做不到的。

1.3 生信领域Perl的学习范围和重点

我们学习Perl,主要目的就是使用Perl强大的文本处理功能来解放我们的眼睛和双手,提高工作效率;其次就是学会看懂别人用Perl写的软件,会安装依赖模块,能使用

大致包括:

开发环境的搭建;

编写Perl程序的方法;

良好的编程习惯;

生信相关的知识要点:如何系统入门Perl-Jimmy总结

如何系统入门Perl

1.3 Perl入门参考资料

  • Perl语言入门(第六版) (俗称小骆驼)

  • Perl菜鸟教程:http://www.runoob.com/perl/perl-tutorial.html (简洁的菜鸟教程,结合小骆驼一起使用)
  • Perl帮助文档perldoc:http://perldoc.perl.org/perl.html (Perl自带的数千页文档)

  • Beginning Perl for Bioinformatics(有中文版)

  • Perl单行命令(可以看看CJ的QQ空间)

1.4 Perl的优缺点

  • 优点: 语法简单容易自由灵活; 运行速度快,Perl解释器直接对源代码程序解释执行; 免费开源; 正则表达式强大; 写小脚本处理文本数据方便,单行命令替代sed、awk;

  • 缺点: 内置变量符不易记忆; 底层社区不活跃; 优秀模块少; 可读性低,不适合写大程序及团队合作;

学习Perl有点类似学习一门口语。你只需要学习少量的词汇,就能享受交流(编程)的乐趣,勤加练习(读、写代码)就能彻底掌握。你可以不必要理解Perl的每一个细节就能变得高效而多产,所以今天我们不需要很多知识要点就能完成对FASTA/FASTQ文件进行数据处理的任务。

2. 编写Perl程序相关

2.1 Perl 环境安装

  • 我们可以在 Perl 的官网下载对应平台的安装包:https://www.perl.org/get.html。
  • 安装方法参考:Perl 环境安装

2.2 从第一个Perl程序开始

我们将以下代码放到 hello.pl 文件中:

#!/usr/bin/perl

# 输出 "Hello, World"
print "Hello, world\n";

B: 创建好Perl文件后,在命令行上执行它。怎么执行? perl hello.pl

2.3 良好的编程习惯

2.3.1 使用内建警告信息

一般写程序,同时加上:

use strict; 
use warnings;
  • 在运行时,加上-w命令行 perl -w my_program.pl
  • 程序中加上-w命令行 #/usr/bin/perl -w
  • 对于perl5.6以后的版本,还可以通过warnings指令打开
    #!/usr/bin/perl
    use warnings;
    

    若要查看更详细的问题描述,在程序中加入:use diagnostics; 自动寻找因为错误拼写造成的错误,在程序中加入:use strict;,同时还要在整个程序中用my 声明变量。

2.3.2 使用帮助文档perldoc

帮助文档是最好的Perl学习资料,当遇到不认识的标识、函数时,应首先查询帮助文档。

1: 安装perldoc说明书apt-get install perl-doc perldoc perl perldoc

2:网页版perldoc说明书Perl Programming Documentation perldoc

2.3.3 注释

**<注释的作用>:** 通过用自己熟悉的语言,在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。

**<注释的分类>:**

单行注释

多行注释

2.3.4 编程的过程

一般用于提取数据的perl程序,思路如下:

1:两个输入数据:比如第一个表为geneid数据,第二个表的第一列为geneid,第二列为geneid对应的数据集表;

2:构思方法:根据已知的数据集构造以geneid为键,以geneid对应的数据集为值的哈希表;从文件中逐行读入,判断待查询的geneid号是否存在对应的键值对,如果存在的话就分别输出键和值。

3:输出数据:第一列为geneid,第二列为geneid对应的数据集的文本文件

**<小总结>:**

  • 确定必需输入,比如用户提供的数据或信息;
  • 对程序进行整体构思,包括程序计算输出结果的基本方法-算法;
  • 决定结果的输出形式;
  • 通过添加更多的细节改善整体构思。