$a = "aaata";
$b = "aataa";
$count = ($a ^ $b) =~tr/\0//c;
输出2(由于c
标志执行两次未命中匹配)而不使用c
标志,输出为3
(匹配)
这是\0
in中的用途tr
。不使用tr
,脚本会给出一些乱码。我不知道这是什么,tr
在这里使用和\0
。除此之外,我们使用\0
in perl。
一般情况下,由多达三个八进制数的转义序列将插入与代码点的字符,所以\40
或\040
产生空格字符,并\0
产生一个ASCII NUL
代码正在计算和之间不同的字符数$a
$b
它对两个字符串进行按位XOR。任何相同的字符将XOR在一起为零,产生一个NUL字符。该tr/\0//c
计数计算结果字符串中除NUL以外的字符数(由于使用了/c
修饰符),因此在这种情况下它将返回2,因为两个字符串在第三个和第四个字符位置不同
转储表达式的值$a ^ $b
清楚地表明了这一点
"\0\0\25\25\0"
在tr///
计算这两个\25
字符,忽略所有完全无效
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句