在Perl中\ 0是什么意思?

mkH*_*Hun 6 perl

$a = "aaata";
$b = "aataa";
$count = ($a ^ $b) =~tr/\0//c;  
Run Code Online (Sandbox Code Playgroud)

输出2(因为c标志执行两次未命中匹配)而不使用c标志输出是3(匹配)

这里有什么用的\0tr.没有使用tr,脚本给出了一些胡言乱语的角色.我不知道这是什么,tr在这里使用和使用\0.除此之外,我们使用\0perl.

Bor*_*din 7

通常,由最多三个八进制数字组成的转义序列将插入带有该代码点的字符,因此\40\040生成空格字符,并\0生成ASCII NUL

代码计算在和之间不同的字符数$a$b

它对两个字符串执行按位异或.任何相同的字符都会异或为零,从而产生NUL字符.的tr/\0//c计数的字符得到的字符串,在数量比完全无效其他(因为的/c改性剂),所以它会返回2在这种情况下,因为两个字符串在第三和第四字符位置不同

倾倒表达式的值$a ^ $b清楚地表明了这一点

"\0\0\25\25\0"
Run Code Online (Sandbox Code Playgroud)

tr///计数两个\25字符,忽略所有完全无效