可能な限り、短い自己完結型の正しい (コンパイル) 例を投稿することを忘れないでください。人々があなたを確実に助けてくれるのがはるかに簡単になります。
SSCCE は次のとおりです。
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Std;
my %Options;
if (! getopts('abisf:',\%Options)){
# Display usage details
print "Usage Error invalid options \n";
exit(1);
}
for my $opt (sort keys %Options)
{
print "-$opt = $Options{$opt}\n";
}
for my $arg (@ARGV)
{
print "arg = $arg\n";
}
print "OK\n";
スクリプトがopt.pl
呼び出され、以下に示すように呼び出されると、正しく動作しているように見えます。
$ perl opt.pl
OK
$ perl opt.pl -a
-a = 1
OK
$ perl opt.pl -a x
-a = 1
arg = x
OK
$ perl opt.pl -a -f x
-a = 1
-f = x
OK
$ perl opt.pl -a -f x zzz
-a = 1
-f = x
arg = zzz
OK
$ perl opt.pl -q
Unknown option: q
Usage Error invalid options
$
出力に予期しないものが表示されますか? システムに何を取得しましたか?