如何使用GetOptions实用程序来处理Perl中的"可选"命令行参数?

The*_*ilk 4 perl getopt-long command-line-arguments

有许多Perl教程解释了如何使用GetOptions实用程序仅处理预期的命令行参数,否则使用适当的消息退出.

根据我的要求,我有以下可选的命令行参数,比如

  • -z zip_dir_path:压缩输出
  • -h:显示帮助.

我尝试了几种与GetOptions无关的组合.
所以我的问题是:如何使用GetOptions来处理这个要求?

编辑:-z需要'zip目录路径'

EDIT2:我的脚本有以下强制命令行参数:

  • -in input_dir_path:输入目录
  • -out output_dir_path:输出目录

这是我的代码:

my %args;
GetOptions(\%args,
"in=s",
"out=s"
) or die &usage();

die "Missing -in!" unless $args{in};
die "Missing -out!" unless $args{out};
Run Code Online (Sandbox Code Playgroud)

希望这个EDIT增加更多的清晰度.

Ala*_*avi 9

:(结肠)可用于指示可选选项:

#!/usr/bin/env perl

use strict;
use warnings;

use Getopt::Long;

my ( $zip, $help, $input_dir, $output_dir );

GetOptions(
    'z:s'   => \$zip,
    'h'     => \$help,
    'in=s'  => \$input_dir,
    'out=s' => \$output_dir,
);
Run Code Online (Sandbox Code Playgroud)