ソース読んでみるとチョロいミスがあるみたい。せっかくだからバグ報告しておこうかと思ったんだけど、そういえば作者は dankogai さん。本当は CPAN にバグとして登録するのが正しい手順なんだろうけど、日本語通じる相手なら日本語で報告してしまいたい。でも連絡先がよくわからない・・・。
というところで #CodeRepos で「どうするのが一番手っ取り早いですか?」とたずねたところ、「dankogai さんにバグ報告するにはブログ書いてトラックバック送るのが一番」とのことだったのでブログに書きます。
まずは、現象の確認。(Windows なのでダブルクォートで囲ってます。)
>perl -MRegexp::List -e "print $Regexp::List::VERSION"
0.13
>perl -MRegexp::List -e "print Regexp::List->new->set(capture=>0)->list2re(qw/abc aaa/)"
(?-xism:a(?:bc|aa))
>perl -MRegexp::List -e "print Regexp::List->new->set(capture=>1)->list2re(qw/abc aaa/)"
(?-xism:a(?:bc|aa))
capture => 1 なのにキャプチャされてない。
で List.pm をちょこっと修正。
>diff List.pm~ List.pm
107,108c107,108
< $self->{op} = $self->{capture} ? '(' : '(?:';
< $self->{cp} = ')';
---
> $self->{po} = $self->{capture} ? '(' : '(?:';
> $self->{pc} = ')';
動作確認。
>perl -MRegexp::List -e "print Regexp::List->new->set(capture=>0)->list2re(qw/abc aaa/)"
(?-xism:a(?:bc|aa))
>perl -MRegexp::List -e "print Regexp::List->new->set(capture=>1)->list2re(qw/abc aaa/)"
(?-xism:a(bc|aa))
OK と。
そういえば言及リンクがないとトラックバック効かないかもしれないのでリンク貼っておきます。
404 Blog Not Found:perl - Regexp::Assembleのススメ
Regexp::Optimizer に言及されている記事を適当に。ちなみにこれも #CodeRepos で「Regexp::List はブログで言及されてないんですよねー」なんてこと言ったら「Regexp::Optimizer はあるでしょ。Regexp::List はその distribution の一つ。」と教えてもらったもの。
CodeRepos に関係ない話題にも係わらず親切に教えてくださってありがとうございます。