はじめてのPerl 第8章 正規表現によるマッチ 練習問題4
練習問題3のコードを元に、$1の代わりに名前付きキャプチャを使うようにしてください。コードを書き終えてそのラベル名を表示するようにしてください。
#!/usr/bin/perl use strict; use warnings; use 5.010; while (<>) { chomp; my $names = "test"; if ($_ =~ /(?<$names>\b\w*a\b)/) { print "'$names' contains '$+{$names}'\n"; } else { print "No match: | $_ | \n"; } }
実行コマンドは以下の通りです。
./practice4.pl < names.txt
結果は以下の通りです。
No match: | fred |
'test' contains 'wilma'
No match: | barney |
'test' contains 'wilma'
'test' contains 'camellia'
'test' contains 'anna'
No match: | te |
'test' contains 'a'
'test' contains 'wilma'