在我们使用别人写好的程序时,经常会使用-h 之类的东西查看一下简单的帮助手册或者说明信息;

对于perl 语言而言,写起来简单,经常随手一写,解决了当时的问题,但是过几天去看,你都不知道这个脚本该怎么调用,是用来做什么的;

为了避免这样的情况,对于常用的脚本,有必要提供较为清晰的帮助文档。

在perl 里面,官方提供了这样的注释手段,看下面的代码示例

=pod

=head1 NAME

L<Transdecoder.LongOrfs|http://transdecoder.github.io> - Transcriptome Protein Prediction

=head1 USAGE

Required:

 -t <string>                            transcripts.fasta

Optional:

 --gene_trans_map <string>              gene-to-transcript identifier mapping file (tab-delimited, gene_id<tab>trans_id<return> ) 

 -m <int>                               minimum protein length (default: )

 -G <string>                            genetic code (default: universal; see PerlDoc; options: Euplotes, Tetrahymena, Candida, Acetabularia)

 -S                                     strand-specific (only analyzes top strand)

=head1 Genetic Codes

See L<http://golgi.harvard.edu/biolinks/gencode.html>. These are currently supported:

 universal (default)
Euplotes
Tetrahymena
Candida
Acetabularia
Mitochondrial-Canonical
Mitochondrial-Vertebrates
Mitochondrial-Arthropods
Mitochondrial-Echinoderms
Mitochondrial-Molluscs
Mitochondrial-Ascidians
Mitochondrial-Nematodes
Mitochondrial-Platyhelminths
Mitochondrial-Yeasts
Mitochondrial-Euascomycetes
Mitochondrial-Protozoans =cut

=pod 到 =cut 之间的内容是帮助信息,这些信息显示到屏幕上时是这样的

NAME
<Transdecoder.LongOrfs> - Transcriptome Protein Prediction USAGE
Required: -t <string> transcripts.fasta Optional: --gene_trans_map <string> gene-to-transcript identifier mapping file (tab-delimited, gene_id<tab>trans_id<return> ) -m <int> minimum protein length (default: 100) -G <string> genetic code (default: universal; see PerlDoc; options: Euplotes, Tetrahymena, Candida, Acetabularia) -S strand-specific (only analyzes top strand) Genetic Codes
See <http://golgi.harvard.edu/biolinks/gencode.html>. These are
currently supported: universal (default)
Euplotes
Tetrahymena
Candida
Acetabularia
Mitochondrial-Canonical
Mitochondrial-Vertebrates
Mitochondrial-Arthropods
Mitochondrial-Echinoderms
Mitochondrial-Molluscs
Mitochondrial-Ascidians
Mitochondrial-Nematodes
Mitochondrial-Platyhelminths
Mitochondrial-Yeasts
Mitochondrial-Euascomycetes
Mitochondrial-Protozoans

有表头部分,格式上也很整齐,通过=head1 , =pod , =cut 这几个小标签,我们只需要关注内容,就可以写出格式整齐,阅读良好的帮助信息

use Pod::Usage;

pod2usage(-verbose => , -output => \*STDERR) if ($help);

通过使用Pod::Usage 模块,加可以将写好的上述格式的注释,方便的显示在屏幕上,结合if 等判断语句,自定义触发条件;

perl 里面如何写出阅读友好的代码提示的更多相关文章

  1. 如何用java写出无副作用的代码

    搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...

  2. 如何写出优雅的CSS代码 ?(转)

    对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混 ...

  3. 如何写出优雅的css代码 ?

    如何写出优雅的css代码 ? 对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于 ...

  4. 如何写出健壮的Java代码

    近来在公司写代码,写出的代码发现BUG很多,为了实现一个功能,代码改了又改,影响了工单的效率,也影响个人绩效,因此从网上找了些关于写健壮代码的文章看了看,再加上自己的一些经验总结. 所谓健壮的代码是指 ...

  5. 如何写出优雅的JavaScript代码 ? && 注释

    如何写出优雅的JavaScript代码 ? 之前总结过一篇<如何写出优雅的css代码?>, 但是前一段时间发现自己的js代码写的真的很任性,没有任何的优雅可言,于是这里总结以下写js时应当 ...

  6. 【原创】怎样才能写出优雅的 Java 代码?这篇文章告诉你答案!

    本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 本文比较简短,基本就是推荐一些对于写好代码非常有用的文章或者 ...

  7. 如何写出优雅的 Golang 代码

    原文: https://draveness.me/golang-101.html Go 语言是一门简单.易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的 ...

  8. 如何写出没有 bug 的代码?

    来源:www.cnblogs.com/sherrywasp/p/9262877.html 1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 ...

  9. fir.im Weekly - 如何写出零 bug 的代码

    神兽护体,代码无bug.经常看到代码注释的各种形状,这是一种程序员情怀.那么,如何能写出零 Bug 的代码呢,来看看@码农翻身 的这篇手册--零Bug的代码是怎么炼成的. 写零 Bug 一定少不了代码 ...

随机推荐

  1. React Native小白入门学习路径——四

    上一周一直在弄着老师布置的各种任务,再加上要做的都还没做完.所以上周的总结到现在才写完发出来..真的觉得老师太高估我们这些菜鸡了. 也许是我太着急了,在自己还没有足够储备去完成自己的项目,总觉得先找一 ...

  2. Java 多线程 同步和异步

    同步和异步通常用来描述一次方法调用.一旦开始调用同步方法,调用者必须等到方法调用返回后,才能执行后续操作.一旦开始调用异步方法,方法调用会立即返回,调用者可以执行后续操作.异步方法会在另外一个线程中真 ...

  3. 增加tomcat的运行速度

    1.增加tomcat的运行速度

  4. tensorflow由于未初始化变量所导致的错误

     版权声明:本文为博主原创文章,如需转载请注明出处,谢谢. https://blog.csdn.net/qq_38542085/article/details/78742295 初始代码 import ...

  5. OHDSI——数据标准化

    Home › Data Standardization Data Standardization Data standardization is the critical process of bri ...

  6. VMWare 下安装 MSDN版 MS-DOS 6.22

    最近有些怀旧,刚从孔夫子旧书网淘回一本<Borland 传奇>,里面讲到了很多DOS时代的经典软件,特别想尝试一下~比如:Turbo Pascal.SideKick.Borland C/C ...

  7. centos7下docker二进制安装

    问题描述: 内网离线环境下,安装docker.二进制来的还是快点,或者内网搭建yum的epel仓库! 环境: centos7.x docker-18.9.0 x86_64  static //二进制 ...

  8. Ubuntu18.04下的模拟神器RetroArch

    安装 直接通过apt安装 sudo add-apt-repository ppa:libretro/stable sudo apt update sudo apt install retroarch ...

  9. bootstrap table 的简单Demo

    暂时够用,不够用再补充 T_T script: <link rel="stylesheet" href="lib/bootstrap.min.css"&g ...

  10. vue改变了数据却没有自动刷新

    有两个按钮,按钮上有个number属性,当此值为偶数时,按钮显示为红色. 最初的数据如下:"a": [{ name: "one" },{ name: " ...