2

プログラムでほとんど自然に思える機能を処理したいのですが、Getopt perl パッケージでそれを処理する方法がわかりません (Std と Long に関係なく)。

次のようなものが欲しいです:

./perlscript <main option> [some options like -h or --output-file some_name]

オプションは - または -- で処理されますが、ユーザーがダッシュなしでメインの必要なオプションを提供できるようにしたいと考えています。

Getopt はそれを行うことができますか、それとも手動で処理する必要がありますか?

4

2 に答える 2

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";
于 2010-06-03T13:39:36.233 に答える
3

なしで記述したい場合-、およびオプションではない場合 (指定したとおり)、何らかの理由でそれはオプションではなく、引数です。あなたは単に自分自身を読むべきです

my $mainarg = shift

そして、Getopt に任せてください。($#ARGVメインの引数が実際に指定されていることを確認するために、後で確認することをお勧めします。)

于 2010-06-03T13:40:17.573 に答える