我在Perl教程中找到了这个例子,但无法理解输出。教程说:
/ d修饰符删除与REPARACEMENT列表中没有相应条目的SEARCHLIST匹配的字符。
但我无法弄清楚这个例子是如何实现的。
有人可以解释输出是如何产生的吗?
脚本:
$string = 'the cat sat on the mat.';
$string =~ tr/a-z/b/d;
print "[$string]\n";
输出:
[ b b b.]
(方括号标出字符串的开头和结尾,即全部。)
答案 0 :(得分:7)
由于替换列表中只有一个字符(b
),因此只有搜索列表中的第一个字符(a
)将替换为b
。搜索列表中的其余字符(b-z
)将被删除。
因此,用a
和b
字母替换b-z
s,
对于 a t,c a t a t。
变为 b b b.
(句子中只有三个a
,空格和点被保留,因为它们不属于搜索列表。)