在Perl的tr ///运算符的第一部分中没有指定的字符会发生什么?

时间:2011-11-24 14:06:10

标签: perl tr

我使用Perl进行字符串操作,并且使用反向函数和tr来翻译我的字符串。 该脚本读取一些字符串,然后执行以下操作:

$revread = reverse($newword);
$revread =~ tr/TACGN/ATGCN/;

所以这个词被反转然后被翻译 - 反向补充。 我有以下问题:

如果

怎么办?
$revread=~ tr/TACG/ATGC/;

被使用。在这种情况下,如果" N"被发现会被跳过吗?因为我没有任何东西可以将它翻译成OR,它将被打印为" N"。

2 个答案:

答案 0 :(得分:5)

是的,tr内未指定的任何内容都将保留。

tr///的文档有点难以理解,因为它的详细示例列在perldoc perlop 而不是通常的perldoc perlfunc

答案 1 :(得分:2)

Aleks G有正确的答案:试试吧。

我试了一下。我发现:

> perl -wE '$x = qq(abcdefg); $x=~ tr/abc/123/; say $x;'
123defg

音译中未找到的任何字符都保留原样。文档here