在使用/ d理解perl tr命令方面需要帮助
发布时间:2020-12-15 21:57:33 所属栏目:大数据 来源:网络整理
导读:我在网上看到了以下Perl示例. #!/usr/bin/perl $string = 'the cat sat on the mat.';$string =~ tr/a-z/b/d;print "$stringn"; 结果: b b b. 有人可以解释一下吗? 解决方法 / d表示删除. 这样做是很不寻常的,因为它令人困惑. tr/a-z//d 会删除所有’a-z
我在网上看到了以下Perl示例.
#!/usr/bin/perl $string = 'the cat sat on the mat.'; $string =~ tr/a-z/b/d; print "$stringn"; 结果: 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 "$stringn"; 警告: 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 "$stringn"; 你改为: xy cax sax on xy max. 因此:t – > x和h – >年. e刚被删除. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |