Perl 向脚本添加帮助命令
是否有向脚本添加帮助功能的标准方法?最简单的方法可能是接受一个论点,如果是“-help”之类的话,打印一些文本。有没有人举过这样的例子Perl 向脚本添加帮助命令,perl,documentation,command-line-arguments,getopt-long,perl-pod,Perl,Documentation,Command Line Arguments,Getopt Long,Perl Pod,是否有向脚本添加帮助功能的标准方法?最简单的方法可能是接受一个论点,如果是“-help”之类的话,打印一些文本。有没有人举过这样的例子 谢谢 我这样做的方法是利用命令行参数查找-h标志 use strict; use warnings; use Getopt::Std; my %args; getopts('h', \%args); my $help = "help goes here. You can use more than one line to format the text";
谢谢 我这样做的方法是利用命令行参数查找
-h
标志
use strict;
use warnings;
use Getopt::Std;
my %args;
getopts('h', \%args);
my $help = "help goes here. You can use
more than one line to format the text";
die $help if $args{h};
# otherwise continue with script...
一个更复杂的方法是使用,尽管我个人没有尝试过这种方法。考虑一下plus。我编写CLI工具的常用模式:
#!/usr/bin/env perl
# ABSTRACT: Short tool description
# PODNAME: toolname
use autodie;
use strict;
use utf8;
use warnings qw(all);
use Getopt::Long;
use Pod::Usage;
# VERSION
=head1 SYNOPSIS
toolname [options] files
=head1 DESCRIPTION
...
=cut
GetOptions(
q(help) => \my $help,
q(verbose) => \my $verbose,
) or pod2usage(q(-verbose) => 1);
pod2usage(q(-verbose) => 1) if $help;
# Actual code below
看一看。我使用一种技术来组合Getopt::Long
模块和Pod::Usage
模块
主动作发生在第97行至第106行和第108行至第110行
Getopt::Long
是一个非常常用的模块,因为它可以轻松地处理命令行参数。使用Pod文档更为罕见。但是,所有CPAN模块和所有Perl内置模块都使用Pod文档,因此,如果您不知道的话。POD并不难学,它内置于Perl中,因此所有Perl程序都可以自文档化。您可以使用perldoc
命令打印任何程序的POD文档。试试这个:
$ perldoc File::Find
您还可以使用pod2html
、pod2text
和其他类型的翻译命令将POD文档打印成HTML等
在我了解POD之前,我会在我的程序顶部放一些类似的东西:
########################################################
# USAGE
#
my $USAGE =<<USAGE;
Usage:
foo [ -baz -fu <bar>] [-help]
where:
baz: yadda, yadda, yadda
fu: yadda, yadda, yadda
help: Prints out this helpful message
USAGE
#
######################################################
这样,有人可以查看代码并阅读用法文本。这也将是使用-help
参数时打印的相同文本。易于使用:
if( $ARGV[0] eq '-h' || $ARGV[0] eq '-help')
{
help();
exit;
}
sub help { print "My help blah blah blah\n";
}
if( $ARGV[0] eq '-h' || $ARGV[0] eq '-help')
{
help();
exit;
}
sub help { print "My help blah blah blah\n";
}