• 读写生信流程必备的 Perl 语法


    最早就是写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就可以换成自己习惯的方式啦~

  • 相关阅读:
    STM32 CubeMX 学习:004-PWM
    MyBase 7.1 可用的 Markdown 配置表
    STM32 CubeMX 学习:003-定时器
    STM32 CubeMX 学习:002-外部中断的使用
    Kubernetes资源对象之RS
    Kubernetes资源对象之Deployment
    Kubernetes基础资源对象之service
    Kubernetes资源对象之RC
    Kubernetes基础资源对象之Pod
    libev
  • 原文地址:https://www.cnblogs.com/leezx/p/6409768.html
Copyright © 2020-2023  润新知