码神之路:Perl篇进化Perl语言学习

Perl programming and perl one li

2017-02-28  本文已影响42人  沧浪之水v

习惯了了一些很好的IDE(比如Matlab 很好的交互界面,VB有很好的图形化界面,还有R 与Rstidio),回过头来看一下Perl的编程环境,我们会发现这里没有很好的条件。但是这真的是这样的吗?

一开始我也很好奇,为什么Perl 就弄一个很好的IDE呢?这样会很方便我们进行调试啊,毕竟调试一个程序的时间占了我们绝大部分的时间。后来随着我对perl的认识,对Linux的熟悉,我发现更本不需要这样:

Perl one line

夯实基础

首先明确 perl 的一个规则

例子:

# on the windos
perl -e "print qq/Hello world\n/"
# one the linux
perl -e 'print "Hellow world" '

-e

-e 是执行单行命令的必选参数,它告诉perl 你现在执行的是单行命令。

图片-e 参数.png

-n

表示直接按行遍历文件:

perl -e "while (<>){ ... }"
# 等同于
perl  -ne " . . . "

-p

表示按行处理文件,并在处理之后打印处理的结果

-a

表示按照空白分隔符分割行并存储结果到默认数组@F,一般与 -ne 一起用

perl -ane "print $F[2]"

-F

指定-a选项使用的分隔符,支持正则

perl -F'###' -ane '...'

-l

表示对所有输入的命令进行chomp,即去除\n;同时,对所有输出数据
自动附件\n

-i

启动原文编辑功能: 这一点可以代替sed 操作命令

#将原文件所有小写转换成大写
perl -i -pe 'tr/a-z/A-Z/'
# 按指定后缀备份原文件,并修改原文件
perl -i.bak -pe 'tr/a-z/A-Z/'

-0 【数值】

指定换行符记号($/变量),用8进制表示,默认为换行

-00 | 段落模式,即以连续换行为分隔符
-0777 | 禁用分隔符,一次读入整个文件
-0076 | 对应分隔符为'>',Fasta

-M

使用模块

快速解决小问题

提取某个fasta的记录

perl -0076 -ane 'print qq{>$_} if $F[0] eq qq{gene_id}' out.fa

查看前10行 # 必须注意,几乎所有perl命令可以在任何操作系

统切换,linux mac windows

perl -pe 'exit if $.>10'
上一篇 下一篇

猜你喜欢

热点阅读