Ruby の scan を Perl でどうやるか忘れる
よく忘れるので memo
str = '<11> <22> <33> <44>'
str.scan(/<(\d+)>/) { # ブロック付き
warn $1
}
str.scan(/<(\d+)>/) # ブロック無し (Array がかえる)を Perl でやるとき
my $str = '<11> <22> <33> <44>';
# たぶん正統派 (ブロック付き)
while ($str =~ m{<(\d+)>}g) {
warn $1;
}
# ↑ の書きかたを忘れるのでよくやってしまうやつ (ブロック付き) ↓
$str =~ s{<(\d+)>}{
warn $1;
$&; # 破壊してもいいときはつけない
}eg;
# ブロック無し (Array Ref.)
my $matched = [ $str =~ m{<(\d+)>}g ];