在使用/ d理解perl tr命令方面需要帮助

前端之家收集整理的这篇文章主要介绍了在使用/ d理解perl tr命令方面需要帮助前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网上看到了以下Perl示例.
#!/usr/bin/perl 

$string = 'the cat sat on the mat.';
$string =~ tr/a-z/b/d;

print "$string\n";

结果:

b b   b.

有人可以解释一下吗?

解决方法

/ d表示删除.

这样做是很不寻常的,因为它令人困惑.

tr/a-z//d

删除所有’a-z’字符.

tr/a-z/b/

将所有a-z字符音译为b.

这里发生的事情是 – 因为你的音译没有在每一侧映射相同数量的字符 – 任何不映射的东西都会被删除.

所以你真正做的是:

tr/b-z//d;
tr/a/b/;

例如.音译到bs然后删除任何其他内容(空格和点除外).

为了显示

use strict;
use warnings;
my $string = 'the cat sat on the mat.';
$string =~ tr/the/xyz/d;

print "$string\n";

警告:

Useless use of /d modifier in transliteration operator at line 5.

和打印:

xyz cax sax on xyz max.

如果您将其更改为:

#!/usr/bin/perl 
use strict;
use warnings;
my $string = 'the cat sat on the mat.';
$string =~ tr/the/xy/d;

print "$string\n";

你改为:

xy cax sax on xy max.

因此:t – > x和h – >年. e刚被删除.

猜你在找的Perl相关文章