これは私の最初の投稿ですstackoverflow。 :)Perl GetOpt :: Long複数の引数とオプションのパラメータ
私はこのシナリオをGetOpt :: Longで解決しようとしています。
./myscript -m/ABC -m/BCD -t NFS -m/ECD -t NFS ...
-mはポイントと-tマウントされたファイルシステムのタイプ(配置することができ、ありますそれは必須ではありません)。
Getopt::Long::Configure("bundling");
GetOptions('m:[email protected]' => \$mount, 'mountpoint:[email protected]' => \$mount,
't:[email protected]' => \$fstype, 'fstype:[email protected]' => \$fstype)
これは権利ではないですが、私は可能なペア、適切なマウントではないと私は、例えば、不特定のfstypeを埋める必要
./check_mount.pl -m /abc -m /bcd -t nfs -m /ecd -t nfs
$VAR1 = [
'/abc',
'/bcd',
'/ecd'
];
$VAR1 = [
'nfs',
'nfs'
];
FSTYPE "undef"の値を指定します。私にとって 最善の解決策は、このような
%opts;
$opts{'abc'} => 'undef'
$opts{'bcd'} => 'nfs'
$opts{'ecd'} => 'nfs'
はそれが可能です...としてハッシュますでしょうか?ありがとうございました。 docsの "引数のコールバック" セクションから
あなたはオプションのために非常に特定の順序を強制しようとしていますが、それは非常に一般的で直感的ではないと思います。私があなたのアプリケーションのユーザだったら、 '-m foo -t bar'は' -t bar -m foo'と同じであると思います。 Getopt :: Longでこれを行うことができるかもしれませんが、別のデザインが良いと思います。 – ThisSuitIsBlackNot