有人可以解释perl中的tr / d修饰符吗?

时间:2015-08-22 22:07:13

标签: perl tr

我在Perl教程中找到了这个例子,但无法理解输出。教程说:

  

/ d修饰符删除与REPARACEMENT列表中没有相应条目的SEARCHLIST匹配的字符。

但我无法弄清楚这个例子是如何实现的。

有人可以解释输出是如何产生的吗?

脚本:

$string = 'the cat sat on the mat.';
$string =~ tr/a-z/b/d;
print "[$string]\n";

输出:

[ b b   b.]

(方括号标出字符串的开头和结尾,即全部。)

1 个答案:

答案 0 :(得分:7)

由于替换列表中只有一个字符(b),因此只有搜索列表中的第一个字符(a)将替换为b。搜索列表中的其余字符(b-z)将被删除。

因此,用ab字母替换b-z s,

  

对于 a t,c a t a t。

变为 b b   b.(句子中只有三个a,空格和点被保留,因为它们不属于搜索列表。)