10天了解perl第一天之——初识perl

Posted 生物坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10天了解perl第一天之——初识perl相关的知识,希望对你有一定的参考价值。

    本系列适合初学或者是曾经看过Perl,现在想温习一遍的Perl语言学习者。

    温馨提示:本系列中有大量括号内起解释作用的文字,未免影响阅读,读者可自行跳过。

10天了解perl第一天之——初识perl
写本教程的初衷
    很多处理文本任务的工作大多会选择使用Perl,而Perl 的语法借鉴了许多古老的 Shell 脚本(简单理解为是 linux 命令的集合),语法中使用了大量奇葩的东西,所以 Google 或百度很难搜索到成体系的 perl 语法知识(这可能也跟用的人少有关系),即使搜到了也可能只是对perl的系统介绍,并没有举太多处理生物数据的例子。
    去看Perl的教科书(大骆驼,小骆驼之类的)又太冗杂,不精练,很多时候是在浪费时间,故集合自己所学总结互联网上的Perl教程,做一个精简实用的Perl教程,把更多时间花在用Perl去编程而不是理解Perl可能永远也用不到的语法是本系列的一个思想。同时,尽可能提供一些用perl处理生物学文本的实例以便更好的理解perl语言的一些特点。



我们为什么使用Perl

    Perl非常擅长处理和生成文本数据(其他语言需要很多行代码才能实现的功能,perl可能只需要一句代码就实现了),这也是其最常被用来使用的方式。所以,这就决定了Perl适合一切需要处理大量文本文件(txt之类的)的工作人员使用,所以不局限于你是否是搞计算机相关的工作,一个公务员也完全可以用Perl来高效处理那些需要重复处理的文案(经常是重复到想吐的东西)


该怎样学习perl

    由于Perl语言官方教程过于冗余与华丽的辞藻介绍(太啰嗦),同时大部分功能我们几乎是用不到(即使用到也会用其他语言代替——毕竟效果更好),我们完全可以精简的学习我们以后能够用到的核心东西(而不是关注官方文档那似是而非的话语—“严格说来不完全是真的,现实情况要复杂得多,额,无语的绕口令式说教)。

下面开始Perl核心语法讲解:

1 从认识perl 脚本开始


   Perl脚本(写好的代码)是带有.pl类似你好.txt”中的“.txt”)后缀的文本文件。

   Perl脚本由Perl解释器解释执行(就是运行写好的代码),通常是perl或者perl.exe

    在命令窗口运行(前提是安装好perl并配置好路径,教程网上一大坨):

10天了解perl第一天之——初识perl

2 语法规范


    由于perl太过随心所欲,有时候狗屁不通的代码也可以顺利执行(虽然结果不知道是什么东西,但是就是没报错,神奇的事情),所以强烈建议在每个perl脚本开头写上这样的编译指示:

use strict;

use warnings;

    以上第一句是告诉perl编译器,我写的代码你要给我按照严格的格式执行,别我随便瞎写你都给我运行一个结果,第二句是是告诉perl编译器,运行写好的perl代码时要提示我写的代码哪里错了(如果有的话),为什么错。

   分号;是语句结束的标志(告诉perl编译器这句代码结束了,不懂的多看看示例代码就懂了),

   井号#表示注释(就是不会被当做代码运行,只是在别人看你的代码时起到一个提示代码功能目的的注解作用)的开始,注释直到这行的结尾结束。

3 变量

     变量可以理解为用来存东西的一个容器。

   Perl的变量有三种类型:标量(scalar数组(array哈希(hashes每种类型都有属于自己的符号:分别是$@%。变量定义(就是创建一个可以来盛放东西的容器)使用my关键字,生命期直到其所在的代码块结束或者文件的末尾。做个比喻,不同的容器类型可以放不同形式的东西,以不同的组织形式放,比如书架和纸箱都可以放书,但显然它们对书本的堆叠方式不同。

    perl变量的具体内容将在下次内容讲解。

总结

    perl是一个脚本语言,适合处理文本任务(在一堆文字类的字符中挑挑拣拣的活),单纯作为一门处理数据的语言来说,我们不需要过多的关注perl的一些复杂用法,重点掌握perl的变量,条件与循环结构,文件读写规则,正则匹配规则就可以解决绝大多数我们平时遇到的任务。本系列后续教程将依次在这几个方面展开。


觉得有用的话还请各位推荐本公众号给周边的朋友哦
10天了解perl第一天之——初识perl


10天了解perl第一天之——初识perl        

生物坊

专注做生信的引路人

不做具体技术细节的推广

以上是关于10天了解perl第一天之——初识perl的主要内容,如果未能解决你的问题,请参考以下文章

10天学会Perl第二天——变量

10天学会perl第三天——条件与循环

暑假第一天之每天一些题系列

perl中的队列

如何有条件地将 C 代码片段编译到我的 Perl 模块?

Swift学习第一天之数组