Getopt::Stdの注意点

毎度ながらすんなりいかないgetopt
getoptとgetoptsの挙動が違うのがいけない

# hoge.pl
my %opt;
getopt('i:o:d', \%opt);

print "-i:$opt{'i'}\n";
print "-o:$opt{'o'}\n";
print "-d:$opt{'d'}\n";
実行結果
> perl hoge.pl -i hoge -o bar -d
-i:hoge
-o:bar
-d:

なぜだ!
ちゃんとdオプション入れてるぢゃん!

結論:
getoptをgetoptsに変更して解消

気分が萎えすぎていろんなパターンを試していないのでなんともいえませんが,
perlではどんな想定外が起こるかわからないということが確認できました.
まぁprint文挿入によるデバッグである程度見つかるんだけれどね...