IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

perlマッチングはイタレータ

~/perl
$ perl -MData::Dumper -e '$a="a123 n456";@b = ($a=~ m/\d+/g);print Dumper(\@b);'
$VAR1 = [
          '123',
          '456'
        ];

#マッチの結果は配列で受け取れる。

~/perl
$ perl -MData::Dumper -e '$a="a123 n456";while($a=~ m/(\d+)/g ){print Dumper($_)}'
$VAR1 = undef;
$VAR1 = undef;

#S_ではダメ。

~/perl
$ perl -MData::Dumper -e '$a="a123 n456";while($a=~ m/(\d+)/g ){print Dumper($1)}'
$VAR1 = '123';
$VAR1 = '456';

#イタレートする場合は$1$2,...,$Nではなく、$1のまま