重複の可能性:
Perl の変数のバックスラッシュによるテキスト置換
このコードが機能しなかったのはなぜですか?
my $foo = '\aa\bb';
my $bar = '\aa\bb\ee\ss.txt';
say $bar =~ m/^$foo.*$/ ? 'OK' : 'BAD';
スラッシュを使用しても問題ありません。
重複の可能性:
Perl の変数のバックスラッシュによるテキスト置換
このコードが機能しなかったのはなぜですか?
my $foo = '\aa\bb';
my $bar = '\aa\bb\ee\ss.txt';
say $bar =~ m/^$foo.*$/ ? 'OK' : 'BAD';
スラッシュを使用しても問題ありません。
使用している
/^\aa\bb.*$/
\a
「アラーム」文字に一致します。\b
単語境界に一致します。特定の文字列に一致するパターンを生成したい。そのためには、 を使用できますquotemeta
。
my $pat = quotemeta($foo);
/^$pat.*$/
quotemeta
を使って呼び出すこともできます\Q..\E
。
/^\Q$pat\E.*$/