读写生信流程必备的 Perl 语法
最早就是写Perl的,后来来到公司转Python,现在又要负责流程了,开始重拾Perl,当然是借鉴别人现有的语法,我再重新组合。
基本语法就不介绍了,参照我之前文章 Perl
模块
use strict;
use File::Path;
内置模块,导入之后就可以随时创建和删除目录了,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;
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;
语法
return \%hash
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 语法的更多相关文章
- Perl 语法 - 基础
perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用. 常用知识点总结: perl语法类似于C语言(perl源于Unix), ...
- Android 类似未读短信图标显示数字效果的分析
之前一直以为是应用本身在对图标进行修改,看了源码之后发现其实主要的工作并不是应用自己完成的,主要的工作在是launcher里面完成的. 关于系统里面类似未读短信的具体处理流程如下, 原理 一个应用要实 ...
- PHP基础知识之流程控制的替代语法
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...
- Android中为图标加上数字--用于未读短信数提醒,待更新应用数提醒等
本文属于原创,转载请著名出处:http://flysnow.iteye.com/blog/906770 写道 在我们开发一些如短消息.应用商店等应用时,会考虑在短消息的图标上加上未读短信的数量,在应用 ...
- perl 语法速查
同时学perl.python和shell脚本会很容易将它们的语法搞混,本文主要是一个个人的总结,方便要用时的查询. perl基本语法.安装.帮助文档 文件头格式: #!/usr/bin/perl us ...
- perl 语法速查 | 模块安装
perl -MCPAN -e shell install Bio::SeqIO 或者直接perl -MCPAN -e 'install Excel::Writer::XLSX' 用cpan装不上,编译 ...
- Perl 语法 - 高级特性
总结: q().qq().qw(同单引号).qx{牢记是花括号},分别是单引号.双引号.创建字符串列表 和 捕获命令输出. 第9学时 其他函数和运算符 一件事情可以使用多种方法完成. 有哪些其他的 ...
- PHP流程控制的替代语法
准备做个wordpress的主题,结果看到了如下的语法: <div id="primary" class="content-area"><ma ...
- 【mysql的编程专题①】流程控制与其他语法
流程控制与内置函数,一般用在select的field字段上,或者用在函数,存储过程,触发器中; 如果用在select上就会随着query出来的row来隐式迭代; 注释与语句结束符 语句结束符 默认有两 ...
随机推荐
- n的二进制中有几个1
实例十七:n的二进制中有几个1 方法:result=n & (n-1) n&(n-1)的目的使最低位的1不断翻转. 比如:n=108,其二进制表示为0110 1100,则n& ...
- $好玩的分词——python jieba分词模块的基本用法
jieba(结巴)是一个强大的分词库,完美支持中文分词,本文对其基本用法做一个简要总结. 安装jieba pip install jieba 简单用法 结巴分词分为三种模式:精确模式(默认).全模式和 ...
- 页面点击,不是a标签也会刷新原因
页面点击,不是a标签也会刷新原因 点击事件冒泡,触发了a链接导致整个页面刷新了.直接阻止 事件冒泡即可 例子: $("tr .am-text-danger").click(func ...
- pollard_rho 学习总结 Miller_Rabbin 复习总结
吐槽一下名字,泼辣的肉..OwO 我们知道分解出一个整数的所有质因子是O(sqrt(n)/ln(n))的 但是当n=10^18的时候就显得非常无力的 这个算法可以在大概O(n^(1/4))的时间复杂度 ...
- android 接受系统锁屏广播,及高版本发送广播
protected BroadcastReceiver messageReceiver = new BroadcastReceiver() { @Override public void onRece ...
- Python3 异常: name 'basestring' is not defined
Python3 异常: name 'basestring' is not defined 问题分析: python3 里已经没有basestring 类型,用str代替了basestring : 解决 ...
- 20145127《java程序设计》第九周学习总结
一.教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 JDBC(Java DataBase Connectivity) 驱动的四种类型 JDBC-ODBC Bridge Driver N ...
- [c/c++]指针(3)
在指针2中提到了怎么用指针申配内存,但是,指针申配的内存不会无缘无故地 被收回.很多poj上的题都是有多组数据,每次地数组大小会不同,所以要重新申请 一块内存.但是原来的内存却不会被收回,也是说2.3 ...
- c++类定义代码的分离
类文件 实际工程中,对一个类的说明.架构.描述方法是: 往往分成头文件和实现的源文件,来实现代码的分离 然后,源文件中包含类的头文件... 头文件的包含问题: 类对应的实现文件cpp.main主 ...
- HDU 1247 Hat’s Words(字典树)题解
题意:给一个字符串集,要你给出n个字符串s,使s能被所给字符串集中的两个相加所得(ahat=a+hat) 思路:简单字典树题,注意查询的时候要判断所指next是否为NULL,否则会RE非法访问. 代价 ...