名前付きキャプチャ

こちらも Perl 5.10 から、ついに、キャプチャが名前付きで指定できるように。

use 5.10.0;

my $a = "aaefbbbaacde";
if ($a =~ m/(?<name>.)\g{name}{2}/) {
  say "match: $&";
  say "name: $+{name}";
}

実行すると、

match: bbb
name: b

上記は、(? で、name という名前をキャプチャにつけた例。後方参照時には、g{name} で参照する。キャプチャの参照方法は、$+{name}。・・・なんか記号チックではあるが。