Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何在下面的脚本中启用帮助选项?_Perl - Fatal编程技术网

Perl 如何在下面的脚本中启用帮助选项?

Perl 如何在下面的脚本中启用帮助选项?,perl,Perl,我的程序采用命令行参数 test.pl --help 我想在代码中启用“帮助”选项。如何打印代码中的用法 #!/usr/bin/perl use strict; use warnings; use Cwd 'chdir'; use Getopt::Long; my ($application,$version, $location,$artifactid,$pomversion,$groupid); GetOptions('application=s' => \$application,

我的程序采用命令行参数

test.pl --help
我想在代码中启用“帮助”选项。如何打印代码中的用法

#!/usr/bin/perl
use strict;
use warnings;
use Cwd 'chdir';
use Getopt::Long;
my ($application,$version, $location,$artifactid,$pomversion,$groupid);
GetOptions('application=s' => \$application,

                   'version=s' => \$version,

        'location=s' => \$location,

        'artifactid=s' => \$artifactid,

        'pomversion=s' => \$pomversion,

        'groupid=s' => \$groupid)
 or die "Usage od the script: $!\n";

print "$application, $version, $location, $artifactid, $versionnumber, $groupid \n";

if($application eq 'abc')

{      chdir("/var/ccabc/dst_${application}_${version}/abc/${location}") or die "Cannot Change Directory: $!\n";

print $ENV{PWD};

do_compile();

}
我已经尽力了。

#/usr/bin/env perl
#!/usr/bin/env perl
use strict;
use warnings;

use Getopt::Std;
use Cwd 'chdir';

sub usage {
  print <<'HERE';
tbd
HERE
  exit;
}
my %opts = ();

getopts('a:v:l:h', \%opts);
$opts{h} && usage();

my $application = $opts{a};

my $version = $opts{v};

my $location = $opts{l};

print "$application, $version, $location\n";

if ($application eq 'abc') {
    chdir "/viewstore/ccwww/dst_${application}_${version}/abc/${location}";

    print $ENV{PWD};
} ## end if ($application eq 'abc')
严格使用; 使用警告; 使用Getopt::Std; 使用Cwd'chdir'; 次级用途{ 打印
#!/usr/bin/env perl
严格使用;
使用警告;
使用Getopt::Std;
使用Cwd'chdir';
次级用途{

打印您阅读了文档吗?您知道
getopts()
函数是如何工作的吗

getopts()
的第一个参数是定义要解析的选项的字符串。因此需要在该字符串中添加“h”

getopts('a:v:l:h', \%opts);
正如您在文档中所看到的,现有选项后面的“:”表示它们在命令行上需要一个值(例如
-a foobar
)。
-h
选项不需要该值,因此我们没有“:”

getopts()
的第二个参数是对将填充选项的哈希的引用。由于新的
-h
选项没有值,如果命令行上给出了选项,则哈希中的“h”键将被赋予值1。因此,您只需检查该值并采取适当的操作

if ($opts{h}) {
  # display your help message
  exit;
}

但是,实际上,所有这些都在文档中。了解您在文档中发现的困难对我们很有帮助,这样我们就可以改进它。

您阅读文档了吗?您知道
getopts()
函数是如何工作的吗

getopts()
的第一个参数是定义要解析的选项的字符串。因此需要在该字符串中添加“h”

getopts('a:v:l:h', \%opts);
正如您在文档中所看到的,现有选项后面的“:”表示它们在命令行上需要一个值(例如
-a foobar
)。
-h
选项不需要该值,因此我们没有“:”

getopts()
的第二个参数是对将填充选项的哈希的引用。由于新的
-h
选项没有值,如果命令行上给出了选项,则哈希中的“h”键将被赋予值1。因此,您只需检查该值并采取适当的操作

if ($opts{h}) {
  # display your help message
  exit;
}


但是,事实上,所有这些都在文档中。了解您在文档中发现的困难对我们很有帮助,这样我们就可以改进它。

这不是真正的代码。
'chir'
?尽管它的名字叫Getopt::Std,但它不是一个好的选择;Getopt::Long需要支持大多数命令使用命令行选项的方式我尝试过getopts::long由于我将命令行参数传递给脚本中的一个变量,所以我遇到了很多异常。这不是真正的代码。
'chir'
?尽管它的名称不同,Getopt::Std并不是一个好的选择;Getopt::long需要支持大多数命令使用命令行选项的方式。我尝试了getopts::long之后,我遇到了很多异常我正在将命令行参数传递给scriptUndefined子例程中的一个变量&main::getopts调用于./test1.pl行15。如果您想执行
/test1.pl
,应该将shebang行添加到脚本中。shebang
/usr/bin/perl
是否正确?如果不正确,请使用
/usr/bin/env perl
。尝试调用
getopts显式
Getopt::Std::getopts
。我刚刚更改了我的%opts=();getopts('a:v:l:h',\%opts);&usage if($opts{h});子用法{print you要求我用Getopt::Std::getoptsUndefined子例程&main::getopts替换代码中的getopts调用./test1.pl行15.shebang行如果你想执行
/test1.pl
你的shebang
/usr/bin/perl
中的路径正确吗?如果不正确,请使用
/usr/bin/env perl
。尝试调用
getopts
explicit
Getopt::Std::getopts
。我刚刚更改了我的%opts=();getopts('a:v:l:h',\%opts);&use if($opts{h});子用法{print你是要我用Getopt::Std::getopts替换代码中的getopts吗谢谢我得到了逻辑now@mahesh:正如我所说的,了解您以前没有得到的信息将非常有用,这样我们可以改进文档。您提供的getopts函数如何工作的解释类似于“:”帮助我理解了您可以简单介绍Getopts::Long函数,比如我们如何将Getopts:Long的输入传递给变量感谢我得到了逻辑now@mahesh:正如我所说的,了解您以前没有得到的信息将非常有用,这样我们可以改进文档。您提供的getopts函数如何工作的解释像“:”帮助我理解了请解释Getopts::Long函数,比如我们如何将Getopts:Long的输入传递给变量