1.1 perl入门
被我的宏基因组数据给折腾的,哥哥我正式向perl宣战,要掌握这门语言,服务我的数据。
perl全名是practical extraction and report language,实用摘录于报表语言。主要用于文字处理,具有容易使用,不受限制,速度快,代码有点难看等特点。我觉得最牛逼的地方在于他是不封闭的,你可以看到他的代码。
脚本的编写: 今天我简单了弄写了两个代码
例1:
#! /usr/bin/perl
@lines=`perldoc -u -fatan2`;
foreach(@lines){
s/\w<([^>]+)>/\U$1/g;
print;
}
第一行#! /usr/bin/perl的意思是使用/usr/bin目录下的Perl来解读下面的程序,其中#!是一个特殊注释符,一般的#是普通的注释符,从开始到行结尾的部分,普通的注释符是没有啥意义的,就是在程序里面一个简单说明说明,方便其他人来读你的程序的时候更容易理解。 一般perl都是在/usr/bin这个目录下,如果不在记得修改其地址,当然还可以通过#! /usr/bin/envperl来帮你定位perl
第二行
@lines=`perldoc -u -fatan2`;
运行的是一个外部命令,通过一对反引号(``)来调用(反引号的按键在全尺寸的美式键盘上数字键1的左边,注意不要把反引号与单引号’搞混了);perldoc -u -fatan2是我们运行的外部命令,你可以直接在终端上输入以上信息,看出现的是什么结果;反引号里的命令结束后,输出的结果被依次存在了@lines这个数组变量中;后面跟着的分号(;)目的是分割不同的perl语句,不是断行。
后面紧跟着的是一个循环,依次对每行的数据进行处理,这些代码暂时看不懂,最后print出来
例1:
#! /usr/bin/perl
print "hello,world!\n";
#! /usr/bin/perl
use 5.010
say "hello,world!";
这是两个代码,但输出的结果一样。\n是换行符的意思,打出这个结果后,光标落在下一行,而用say就可以不用输入\n而自动换行,但是有一个条件,必须是perl 5.10版本以后,如果不是就,就得提醒一下,通过use 5.010告诉解释器,但是解释器识别的是小数点后三位,所以perl 5.10版本得写成5.010 这里可以通过perl -v来看你版本,我的是5.14.2
脚本的命名:
Perl程序并不需要什么特殊的文件名或拓展名,甚至不用拓展名就最好不要用。就是怕用其他的程序改写后以免引起误解。但是呢,我一般还是会用**.pl,至少提醒自己这个文件是一个脚本啊,你觉得呢
脚本的运行:
你可以直接在终端中 :perl my_pro #my_pro是你编写的脚本的名字 也可以chmod a+x my_pro 把该文件变成一个可执行的程序,然后cd到该文件夹,同多./my_pro来运行,淡然如果是可执行的文件,在修改的时候得注意了,我之前提到过,打开后i修改,esc后, :wq来保存
CPAN
comprehensive perl archive network,里面有很多perl的源代码,各种下载
ps:
此内容根据《Perl语言入门》这个书的内容整理而来,今天开始第二次看这本书了,有种豁然开朗的感觉。
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn