如何使用Getopt处理主选项

Jér*_*ôme 2 perl getopt

我想处理一个在我看来几乎很自然的程序,我不知道如何使用Getopt perl包处理它(无论Std ot Long).

我想要像:

./perlscript <main option> [some options like -h or --output-file some_name]
Run Code Online (Sandbox Code Playgroud)

选项将使用 - 或 - 来处理,但我希望能够让用户在没有破折号的情况下向我提供主要和必需的选项.

Getopt能够做到这一点,还是我必须手工处理?

FMc*_*FMc 8

听起来好像你在谈论非选项 - 基本的命令行参数.他们可以访问@ARGV.该Getopt模块将通过你的脚本不受干扰通过定期的参数:

use strict;
use warnings;
use Getopt::Long;

GetOptions (
    'foo'   => \my $foo,
    'bar=s' => \my $bar,
);

my @main_args = @ARGV;

# For example: perl script.pl --foo --bar XXX 1 2 3
# Produces:    foo=1  bar=XXX  main_args=1 2 3
print "foo=$foo  bar=$bar  main_args=@main_args\n";
Run Code Online (Sandbox Code Playgroud)