Perl 的 tr/// 运算符第一部分中未指定的字符会怎样?

发布于 2024-12-18 03:34:52 字数 334 浏览 3 评论 0原文

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

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

因此该单词被颠倒过来,然后被翻译——反向补码。 我有以下问题:

如果

$revread=~ tr/TACG/ATGC/;

使用的话会怎样。在这种情况下,如果找到“N”,它会被跳过吗?就像在 tr 中一样,我没有任何东西可以将其翻译为 OR 它将被打印为“N”。

I am using Perl for string manipulation and that involves use of the reverse function and of tr to translate my string.
The script reads some strings and then performs following:

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

So the word is reversed and then gets translated--reverse complement.
I have following question:

What if

$revread=~ tr/TACG/ATGC/;

is used. In this case if "N" is found will it be skipped? as in tr I have nothing there to translate it to OR it will be printed as just as "N".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过潦 2024-12-25 03:34:52

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

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

Yes, anything that is not specified inside to tr will be left alone.

The documentation for tr/// is a little hard to get to as it's detailed examples are listed in perldoc perlop rather than the usual perldoc perlfunc

左耳近心 2024-12-25 03:34:52

Aleks G 给出了正确答案:试试吧。

我试过了。我发现:

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

音译中找不到的任何字符都保留原样。文档此处

Aleks G has the correct answer: Just try it.

I tried it. I found that:

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

Any characters not found in the transliteration are left as they are. Documentation here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文