最早就是写Perl的,后来来到公司转Python,现在又要负责流程了,开始重拾Perl,当然是借鉴别人现有的语法,我再重新组合。

基本语法就不介绍了,参照我之前文章 Perl

 

模块

use strict;

 

use File::Path;

【Perl】Path::File 目录的创建和删除

内置模块,导入之后就可以随时创建和删除目录了,mkpath("LZX");rmtree("LZX");

 

use Getopt::Long;

perl 中的有关控制参数的模块,参考:在Perl中使用Getopt::Long模块来接收用户命令行参数

 

my $usage = <<USAGE;
Description: main pipeline for metagenomic analysis based on IGC, version 2016a
USAGE

USAGE 在这里通俗讲就是一个标记,它用来标记一段文字(一般都是多行的,省得编码麻烦,用"<<"加上一个标记就可以把一大段代码存入到一个变量中去了);$usage = <<USAGE 的意思就是说:下一行开始,直到遇见“USAGE”为止,所有的字符都按照指定的格式存入变量usage中。你可以用EEE,MAMA等等其他的名字都可以,就是一个标记而已,它的作用就是简化输入。

一般都有后续,die $usage if (!$conf || !$rawFqList || $help);

类似open(MYFILE, "myfile") || die "Cannot open myfile: $!/n"; 程序结束,打印$usage 标量。

 

use File::Basename;

perl File::Basename 模块

File::Basename 模块 从文件名中抽取基名,取不包括路径的文件名。

 

use FindBin '$Bin';
use Cwd qw(abs_path);

[Perl]如何取绝对路径:FindBin模块和Cwd模块用法和区别

通过FindBin qw($Bin)获取的是脚本所在目录的绝对路径

通过Cwd qw(abs_path getcwd)获取的是运行脚本时所在的目录的绝对路径

$outdir = abs_path $outdir;

 

use Config::General;

Config::General

 

语法

return \%hash

参考:Perl引用reference(\运算符)

 

my %config = %$config;
my @array2 = @{$array_r};  #拷贝了数组

对引用变量解引用通过{$var_r}实现;

 

 

$outdir ||= "./";

=~是正则匹配运算符,||=是或等赋值运算符。表示如果$outdir为非false,那么$outdir还是$outdir,否则,$outdir被赋值为./。

 

正则表达式

 

 

notepad++使用技巧

我喜欢用notepad++来写perl代码,默认绑定.pl后缀

注释

快捷键如下:

单行、多行注释   //方式  :ctrl+k

区块注释  / * * /方式 :ctrl+q

取消单行、多行、区块注释  :ctrl+shift+k

如果感觉默认的快捷键不方便,可以修改成自己习惯的快捷键:设置-管理快捷键-Mainmenu选项卡下的第42-44项是上述快捷键选中某项,点击下面的modify就可以换成自己习惯的方式啦~

读写生信流程必备的 Perl 语法的更多相关文章

  1. Perl 语法 - 基础

    perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用. 常用知识点总结: perl语法类似于C语言(perl源于Unix), ...

  2. Android 类似未读短信图标显示数字效果的分析

    之前一直以为是应用本身在对图标进行修改,看了源码之后发现其实主要的工作并不是应用自己完成的,主要的工作在是launcher里面完成的. 关于系统里面类似未读短信的具体处理流程如下, 原理 一个应用要实 ...

  3. PHP基础知识之流程控制的替代语法

    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...

  4. Android中为图标加上数字--用于未读短信数提醒,待更新应用数提醒等

    本文属于原创,转载请著名出处:http://flysnow.iteye.com/blog/906770 写道 在我们开发一些如短消息.应用商店等应用时,会考虑在短消息的图标上加上未读短信的数量,在应用 ...

  5. perl 语法速查

    同时学perl.python和shell脚本会很容易将它们的语法搞混,本文主要是一个个人的总结,方便要用时的查询. perl基本语法.安装.帮助文档 文件头格式: #!/usr/bin/perl us ...

  6. perl 语法速查 | 模块安装

    perl -MCPAN -e shell install Bio::SeqIO 或者直接perl -MCPAN -e 'install Excel::Writer::XLSX' 用cpan装不上,编译 ...

  7. Perl 语法 - 高级特性

    总结: q().qq().qw(同单引号).qx{牢记是花括号},分别是单引号.双引号.创建字符串列表 和 捕获命令输出.   第9学时 其他函数和运算符 一件事情可以使用多种方法完成. 有哪些其他的 ...

  8. PHP流程控制的替代语法

    准备做个wordpress的主题,结果看到了如下的语法: <div id="primary" class="content-area"><ma ...

  9. 【mysql的编程专题①】流程控制与其他语法

    流程控制与内置函数,一般用在select的field字段上,或者用在函数,存储过程,触发器中; 如果用在select上就会随着query出来的row来隐式迭代; 注释与语句结束符 语句结束符 默认有两 ...

随机推荐

  1. java class遍历属性

    private void iterateClass(Object object) { Field[] fields = object.getClass().getDeclaredFields(); f ...

  2. 浏览器css hack

    (1)*:  IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的; (2)!important: 除IE6不能识别 !important外,  FF+IE8+IE7都能识别!import ...

  3. MySQL重装失败,could not start the service MySQL.Error:0

    MySQL5.5 安装失败现象: mysqld.exe [6132] 中发生了未经处理的 win32 异常 could not start the service MySQL.Error:0 1.在 ...

  4. redis 主从同步搭建

    redis 一主二从 1.redis 安装 安装教程:https://www.cnblogs.com/zwcry/p/9505949.html 2.redis主从 1)创建主从目录 mkdir /us ...

  5. torch7入门(安装与使用)

    http://blog.csdn.net/real_myth/article/details/52291636 1.安装与使用 测试系统是ubuntu14.04LTS,默认安装在-/torch,当然我 ...

  6. RabbitMQ-C 客户端接口使用说明

    rabbitmq-c是一个用于C语言的,与AMQP server进行交互的client库.AMQP协议为版本0-9-1.rabbitmq-c与server进行交互前需要首先进行login操作,在操作后 ...

  7. 20145330 《网络攻防》 MSF基础应用

    20145330 <网络攻防> MSF基础应用 1.实验后回答问题 (1)用自己的话解释什么是exploit,payload,encode. exploit:进行渗透攻击的模块合集 pay ...

  8. C#预处理器指令【转】

    本文转载自:http://www.cnblogs.com/miffylf/p/4005223.html C#有许多名为预处理器指令的命令.这些命令从来不会转化为可执行代码中的命令,但会影响编译过程的各 ...

  9. Linux进程间通信--使用信号量【转】

    本文转载自:http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号 ...

  10. 网络压缩论文集(network compression)

    Convolutional Neural Networks ImageNet Models Architecture Design Activation Functions Visualization ...