下表是Perl引用符的对比表,第一列是一般用法,第二列是替代用法,第四列表示这种用法中是否允许变量替换。
- Customary Generic Meaning Interpolates
- '' q{} Literal no
- "" qq{} Literal yes
- `` qx{} Command yes*
- qw{} Word list no
- // m{} Pattern match yes*
- qr{} Pattern yes*
- s{}{} Substitution yes*
- tr{}{} Transliteration no
- y{}{} Transliteration no
- <<EOF here-doc yes*
- * unless the delimiter is ''.
perl中s///和tr///的区别s///: 替换运算符。s/searchpattern/repalcement/;默认搜索$ _,找出searchpattern,并且用replacement来替换整个匹配的正则表达式。该运算符返回匹配的数量或进行替换的数量,如果没有进行任何匹配,则返回0。
当然也可以指定某个变量,如$perl=~s/searchpattern/repalcement/; 另外,替换运算符也可以使用非斜杠(/)的界限符,如s###.
转换操作符tr///的作用与替换运算符有些类似,不过它并不使用正则表达式,而且它的运行方式完全不同。转换操作符的句法如下所示:tr/searchment/repalcement/;是把searchment的第一个字符换成replacement的第一个字符,searchment的第二个字符换成replacement的第二个字符,类推 ~~~~~~~
即:转换操作符t r / / /用于搜索一个字符串,找出searchlist中的各个元素,并用replacementlist中的对应元素对它们进行替换。如果r e p l a c e m e n t l i s t是空的,或者与s e a r c h l i s t相同,那么t r / / /将计算并返回匹配的字符。目标字符串并不被修改。
详细信息请参考
阅读(1401) | 评论(0) | 转发(1) |