perl 里面如何写出阅读友好的代码提示
在我们使用别人写好的程序时,经常会使用-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 里面如何写出阅读友好的代码提示的更多相关文章
- 如何用java写出无副作用的代码
搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...
- 如何写出优雅的CSS代码 ?(转)
对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于团队合作和后期的维护:而有的混 ...
- 如何写出优雅的css代码 ?
如何写出优雅的css代码 ? 对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来清晰易懂,代码具有可拓展性,这样的代码有利于 ...
- 如何写出健壮的Java代码
近来在公司写代码,写出的代码发现BUG很多,为了实现一个功能,代码改了又改,影响了工单的效率,也影响个人绩效,因此从网上找了些关于写健壮代码的文章看了看,再加上自己的一些经验总结. 所谓健壮的代码是指 ...
- 如何写出优雅的JavaScript代码 ? && 注释
如何写出优雅的JavaScript代码 ? 之前总结过一篇<如何写出优雅的css代码?>, 但是前一段时间发现自己的js代码写的真的很任性,没有任何的优雅可言,于是这里总结以下写js时应当 ...
- 【原创】怎样才能写出优雅的 Java 代码?这篇文章告诉你答案!
本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 本文比较简短,基本就是推荐一些对于写好代码非常有用的文章或者 ...
- 如何写出优雅的 Golang 代码
原文: https://draveness.me/golang-101.html Go 语言是一门简单.易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的 ...
- 如何写出没有 bug 的代码?
来源:www.cnblogs.com/sherrywasp/p/9262877.html 1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 ...
- fir.im Weekly - 如何写出零 bug 的代码
神兽护体,代码无bug.经常看到代码注释的各种形状,这是一种程序员情怀.那么,如何能写出零 Bug 的代码呢,来看看@码农翻身 的这篇手册--零Bug的代码是怎么炼成的. 写零 Bug 一定少不了代码 ...
随机推荐
- 新浪SAE创建微信模板消息应用与SVN的使用
本地项目源文件必须放在应用名目录下面的数字目录里面.如:D:\SVN\xtmp1\1 我们在前面讲述在新浪SAE中如何建站,今天我们来详解如何上传文件.新浪SAE中是不允许用FTP来上传的.我们只能用 ...
- c#中base64加密解密
using System;using System.Text; namespace Common{/// <summary>/// 实现Base64加密解密/// </summary ...
- 深入理解JVM(4)——对象内存的分配策略
一.Java所承担的自动内存管理主要是针对对象内存的分配和回收. 二.在Java虚拟机的五块内存空间中,程序计数器.Java虚拟机栈.本地方法栈内存的分配和回收都具有确定性,一般在编译阶段就能确定需要 ...
- 用python实现ARP欺骗
首先介绍一个python第三方库--Scapy,这个库不是标准库,默认是没有的,需要安装,不过在kali-linux里边是默认安装的, 这里我用kali做攻击者,xp做受害者 关于Scapy Scap ...
- django之模板继承以和模板导入
1,模板继承 一,模板继承 1.在template下面新建一个master.html的文件,当做母版. 2. 母版里需要被替代的部分,以block开始,以endblock结尾 {% block con ...
- 微信小程序-转发
仅供参考 1,js: onShareAppMessage(res) { return { title: '我在使用俺搜·找客户,10万+材料人都在用,就差你了', path: '/pages/inde ...
- GMA Round 1 双曲线与面积
传送门 双曲线与面积 P是双曲线$\frac{x^2}{1471^2}-\frac{y^2}{1372^2}=1$上的一个动点,现在过P作一条直线与该双曲线的两条渐近线相交于A.B两点,且|AP|=| ...
- JS膏集01
JS膏集01 1.动态页面: 向服务器发送请求,服务器那边没有页面,动态生成后,返回给客户端 由html/css/js组成. js还不是面向对象的语言,是基于对象的语言.js中没有类的概念,js的继承 ...
- Asp.Net Core获取请求上下文HttpContext
注:特别说明当前版本对应.Net Core2.1意义上框架 一.注入HttpContextAccessor ASP.NET Core中提供了一个IHttpContextAccessor接口,HttpC ...
- IntelliJ IDEA 下载安装(含注册码)
https://blog.csdn.net/mashuai720/article/details/79389314