perl中的异或操作不会自动把字符串转换为整数?

perl中的异或操作不会自动把字符串转换为整数?

最后是这样做的
$x = "123";
$y = "456";
$x = $x + 0;
$y = $y + 0;
$z = $x ^ $y;
对perl不熟悉
这里是什么原因呢?
看大骆驼第三章“位操作符”
位操作,有1个或2个是数字时会转换成整数。两个都是字串时按字串位做位操作,不足的补0


QUOTE:
原帖由 odacharlee 于 2008-11-4 16:09 发表
看大骆驼第三章“位操作符”

谢谢

QUOTE:
如果两个操作数都是字串(而且自从它们被设置以来还没有当作数字使用过),那么该操作符用两个字串里面来的位做位操作。这种情况下,没有任何字长限制,因为字串本身没有尺寸限制。如果一个字串比另一个长,Perl 就认为短的那个在尾部有足够的 0 以弥补区别。

顺便问个问题
就是把字符串转换为整数 应该怎么做?
我只知道加个0可以完成
printf sprintf int hex
perl 就是这么干的 呵呵