请问以下这个语句该怎么理解呢? my $count = ( $expected_barcode ^ $CellID ) =~ tr/\0//;

请问以下这个语句该怎么理解呢?
my $count = ( $expected_barcode ^ $CellID ) =~ tr/\0//;
这里面的^和\0分别代表什么呢?
如果我想表达$expected_barcode 和 $CellID这两个字符串不能匹配的字符数为0,也就是这两个字符串完全一样,但是我想让$count的值为0,该如何修改呢?