重複の可能性:
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.*$/