Pass HashRef as first argument to Getopt::Long::GetOptions

  • 投稿日:
  • by
  • カテゴリ:  

http://gist.github.com/326535

これをみてちょっとビビった(まったく本筋とは関係ないところで)。Getopt::Long::GetOptions の第1引数に HashRef 渡して、続いてオプションリストを配列で渡してる...。なんですかその使い方...。

まじで?!と思って試してみた。

#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;

GetOptions(
    \my %opt,
    qw( foo=s bar=i baz ),
);                                                                                                                                                         
$opt{foo} ||= '';
$opt{bar} ||= 0;
$opt{baz} ||= 0;

print $opt{foo}, "\n";
print $opt{bar}, "\n";
print $opt{baz} ? 'ture' : 'false', "\n";

テスト。

% perl getoptions.pl --foo test --bar 123
test
123
false

おぉお。こんな指定できたのかぁ、GetOptions。