Hatena::Groupperl

Perl Tech RSSフィード

2008-06-28

Perl5で簡易スマートマッチ はてなブックマーク -  Perl5で簡易スマートマッチ - Perl Tech

Perl6やperl 5.10で導入されたスマートマッチを擬似的に行う方法です。配列を文字列展開すると空白で区切られた文字列になるので、これに対してマッチを行えば1回で済むというわけです。プログラムのオプション等を即席で調べるのに使えます。

my @opts = ("-option1", "-option2", "-option3");

# "@opts" eq "-option1 -option2 -option3"
if ("@opts" =~ /-option2/) {
    print "option2 is on\n";
}

CressCress2008/06/29 22:14if (grep { /-option2/ } @opts ) でも似たようなことができますが、可読性としてはこちらの方が良さそうですね。
まあ、 -option22 とかも(あれば)ヒットしちゃいますが。