我希望在 Perl 字符串中转义特殊字符,例如引号和空格。
我想避免使用正则表达式和安装额外的模块。
使用quotemeta
可能会对您有所帮助。
my $escaped = quotemeta $string_with_quotes_and_spaces;
它将以反斜杠转义任何不是字母数字或下划线的内容。
如果您收到字符串,那么 Borodin 的 quotemeta 解决方案将起作用。
如果是声明字符串,可以使用qq开关声明自己的字符串分隔符。例如使用 # 而不是 ' 或 ":
my $string = qq#Didn't know I could do this!"how" amazing#;
这将转义通常的字符串分隔符。