perl的单引号字符串的问题。

codesnail 2010-09-21 11:39:36
perl的单引号字符串被设计成为 “尽量保持单引号内部的内容,也就是说你写的是什么,你用print输出就是什么”。

有两个特殊 一个是 '\',另外一个是 ' ‘ ',后一个很好理解,因为字符串本身需要判断结束的位置,所以要用\'来表示'.
疑问的是为什么‘a\\b’和‘a\b’是一样的,这不就与设计初衷相反了吗,没必要用\\来表示\吧?

求解答,谢谢。
...全文
216 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
codesnail 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 iambic 的回复:]
假设你的字符串只包括一个\,你要用单引号包含它,就成了'\',在Perl看来,\'会被当成字符串中的一个'。所以你还是需要用\\来转义,以避免歧义。
[/Quote]
真是牛人啊,服了。
m00z 2010-09-25
  • 打赏
  • 举报
回复
If you put something in single quotation marks, Perl assumes that you want the exact characters you place between the marks — except for the slash-single quote (\') combination and double-slash (\\) combination.

转自:http://www.dummies.com/how-to/content/contrasting-single-and-double-quotes-in-perl.html
iambic 2010-09-24
  • 打赏
  • 举报
回复
单引号里不会解释$。
proorck6 2010-09-24
  • 打赏
  • 举报
回复
在字符串中要用到$var插入,又要用到$符号本身,所以要写成\$,这时就不能直接显示\$,所以\\$还是有用的。这应该不是个bug。
wxgiter 2010-09-23
  • 打赏
  • 举报
回复
学习...
jiuchang 2010-09-22
  • 打赏
  • 举报
回复
这个正确

[Quote=引用 6 楼 iambic 的回复:]

假设你的字符串只包括一个\,你要用单引号包含它,就成了'\',在Perl看来,\'会被当成字符串中的一个'。所以你还是需要用\\来转义,以避免歧义。
[/Quote]
guoxuqu 2010-09-21
  • 打赏
  • 举报
回复
因为\有特殊用途,如果你要在单引号字符串里面插入单引号,只能用\'.
iambic 2010-09-21
  • 打赏
  • 举报
回复
假设你的字符串只包括一个\,你要用单引号包含它,就成了'\',在Perl看来,\'会被当成字符串中的一个'。所以你还是需要用\\来转义,以避免歧义。
codesnail 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guoxuqu 的回复:]
因为\有特殊用途,如果你要在单引号字符串里面插入单引号,只能用\'.
[/Quote]
不看问题就回答,,,,,,
codesnail 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 proorck6 的回复:]
这应该是一个bug
[/Quote]
。。。。。不会吧,这个bug应该很容易修改吧,怎么会遗留到现在?
codesnail 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guoxuqu 的回复:]
因为\有特殊用途,如果你要在单引号字符串里面插入单引号,只能用\'.
[/Quote]
我知道单引号需要,问题是\本身为什么需要?
proorck6 2010-09-21
  • 打赏
  • 举报
回复
这应该是一个bug

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧