後方参照しないグループ化


 m//やs///を使う際に()で囲むとそこにマッチした部分を$1などで参照することができます。しかし必ずしも参照するわけではなく、繰り返しのために()で囲むこともよくあります。
 そういう場合は(?:)で囲むと$1などで参照できなくなる代わりに少し処理が速くなります。
$val = '3.14';
if ($val =~ m/^[+-]?\d+(?:\.\d+)?$/) {
	print "match\n";
}

関連項目

なし。