如何在不将Perl作为转义字符的情况下打印地址字符串?我不想通过添加更多转义字符来更改字符串。如何防止Perl将解释为转义字符?
回答
这取决于你在逃避什么,但类似Quote的操作员可能会提供帮助。
请参阅perlop手册页。
你在问什么叫做插值。见"Quote-Like Operators"文档在perldoc perlop,但更具体地做到这一点是与被称为“这里的文档”的语法方式结合单引号:
单引号表示将文本与没有字面上的处理对其内容进行插值。这与单引号字符串类似,只是反斜杠没有特殊含义,\被视为两个反斜杠,而不是像其他每个引用构造中的反斜杠那样。
这是在perl中引用的唯一形式,不需要担心转义内容,这是代码生成器可以并且很好利用的东西。
例如:
my $address = <<'EOF';
[email protected]\with\backslashes\all\over\theplace
EOF
您可能希望在其他各种报价运营商如qw
和qq
(正如我上面提到的在同一文件)读了起来,因为它们是很常用的并为其他更加冗长的逃避内容的方式做好速记。
我也想过那个!出于某种原因,我认为它仍然会插入反斜杠。愚蠢的Python使我混淆了我的字符串插值。 (唯一需要注意的是这会增加一个可能不希望的数据末尾添加新行) – 2010-01-22 07:52:30
@Chris:确实,在这种情况下,substr()或chomp()会很好地修理它。 – Ether 2010-01-22 08:07:09
但是,不要忘记,你可以逃避'和\甚至在单引号的字符串。我应该改变文档以指出这一点。 :) – 2010-01-22 18:49:26
使用单引号。例如
print 'lots\of\backslashes', "\n";
给
lots\of\backslashes
如果你想插变量,使用.
运算符,如
$var = "pesky";
print 'lots\of\\' . $var . '\backslashes', "\n";
请注意,您必须在年底转义反斜线字符串。
作为替代方案,你可以使用join
:
print join("\\" => "lots", "of", $var, "backslashes"), "\n";
我们可以给更多有用的答案,如果你想给我们的示例代码。
使用backslah两次,
print "This is a backslah character \\";
- 1. 如何防止Perl将双反斜杠解释为单反斜杠字符?
- 2. 如何防止JAXB转义字符串
- 3. EXPECT如何将一个转义字符解释为一个命令字符
- 4. Perl - 如何将转义序列转换为字符串?
- 5. 如何将转义字符转换为Perl中的实际特殊字符?
- 6. 无论如何,以防止转换转义字符的innerHTML/$。html?
- 7. 防止json_encode添加转义字符
- 8. 防止转义字符串c#
- 9. 将转义字符解释为SAS中的阵列
- 10. 用perl解码unicode转义字符
- 11. 如何防止c解释sed
- 12. 如何在perl中转义'$'字符?
- 13. 如何防止将“^”转换为上标?
- 14. 防止解释反斜杠转义的“回声”
- 15. 如何将字符串转换为Perl中的unicode字符串
- 16. 如何防止Uglify在字符串中转义“</ script”?
- 17. 如何将印度语字符转换为Unicode转义字符
- 18. perl字符串转义
- 19. 如何使ASP.NET停止解释null作为字符串
- 20. 防止PHP解释源代码中字符串中的新行
- 21. 如何将终止NUL字符\ x00转换为字符串?
- 22. 防止rails将特殊字符转换为HTML实体
- 23. 防止awk将字符串从0开始转换为oct0
- 24. 如何防止CKEditor将重音字母转换为HTML代码?
- 25. 将UTF-8转义字符读取/解码为本机字符
- 26. 如何停止将html实体解释为其字符的html textarea
- 27. 将字符解释为十六进制
- 28. 将4个字符解释为整数
- 29. 如何防止System.Xaml.XamlXmlWriter转义我的MarkupExtension?
- 30. 如何防止Flash的URLRequest转义url?
你能发布是造成该问题的代码? – 2010-01-22 06:44:04
对不起,你会走运。 '\\'是转义字符,如果你想要一个字面值,你必须转义它。 – 2010-01-22 07:07:25
@Chris:bzzt! :) – Ether 2010-01-22 07:37:05