如何判断字符串的最后一个字符是"\"?如果是的话就去掉



QUOTE:
原帖由 Lonki 于 2007-9-11 13:52 发表




对于前者, 符号?, 此处是多余的.

后者更直观, 速度更快, 见上贴我的分析.

饿。。。。谢谢你的分析。。
不过$str=~s/\\$//貌似是我提出来地。。。偶还是知道地
我主要是疑惑$str=~s/\\$// 和 {local $/='\\';chomp $str;}
这两个的速度差,perl的机理真像黑盒啊


QUOTE:
原帖由 perljoker 于 2007-9-11 14:45 发表

饿。。。。谢谢你的分析。。
不过$str=~s/\\$//貌似是我提出来地。。。偶还是知道地
我主要是疑惑$str=~s/\\$// 和 {local $/='\\';chomp $str;}
这两个的速度差,perl的机理真像黑盒啊

误会, 嘿嘿, 原来你要比较这2个, OK, 因为:
=~这种方法通常是先读入变量, 再用正则试去匹配.
而local这个方法直接在读入时就处理掉好了, 利用了PERL的一点内部规则.


QUOTE:
原帖由 Lonki 于 2007-9-11 16:22 发表

=~这种方法通常是先读入变量, 再用正则试去匹配.
而local这个方法直接在读入时就处理掉好了, 利用了PERL的一点内部规则.

是你说的这样子吗?
况且,你真的明白楼上哪位的疑惑是什么吗?


QUOTE:
原帖由 flw 于 2007-9-11 17:11 发表

是你说的这样子吗?
况且,你真的明白楼上哪位的疑惑是什么吗?

个人理解:
1. 比如用<STDIN> =~ /正则式/
  读入字符串后(默认以\n作为截断) , 再对此字符串做正则式匹配.

2. $/='\\';chomp $str;
   读入字符串(以'\'作为截断)

明显的, 方法2的速度快.



有说错的地方请帮忙纠正吧.


QUOTE:
原帖由 Lonki 于 2007-9-11 20:08 发表




个人理解:
1. 比如用 =~ /正则式/
  读入字符串后(默认以\n作为截断) , 再对此字符串做正则式匹配.

2. $/='\\';chomp $str;
  读入字符串(以'\'作为截断)

明显的, 方法2的速度快.



有 ...

何来“读入”?有人问过有关“读入”的问题吗?