ある文字列が正規表現パターンにマッチするかを調べるには m// 演算子を使用します。
m// 演算子は、デフォルトで $_ に格納されたテキストの内容とマッチング処理を行います。
$_ = 'You can do it.';
if (m/can/) {
print "Found!\n";
}
パターンの前後を囲むデリミタは、一般的にはスラッシュ (/) が使用されますが、下記のようにスラッシュ以外の記号を使用することができます(このあたりの柔軟性は qw// 演算子と同様です)。
m!pattern!
m?pattern?
m#pattern#
m<pattern>
m{pattern}
スラッシュをデリミタに使用する場合は、プレフィックスの m を省略することができます。
このショートカット記法を使うため、多くの人はスラッシュをデリミタとして使います。
$_ = 'hogehoge';
if (/pattern/) {
...
}
$_ 以外の任意の文字列変数とマッチングさせるには、結合演算子 (binding operator) と呼ばれる =~ を使います。
my $line = 'hogehoge';
if ($line =~ /pattern/) {
...
}
マッチングの結果の真偽値を、変数に保存しておくこともできます。
my $is_matched = /pattern/;
my $is_matched = $line =~ /pattern/;
my $is_matched = <STDIN> =~ /pattern/;