perl中的字符串和数值
$string = "11"; perl 中字符串和数值可以互相转换,但是只是十进制的字符串。 对于字串中有非十进制字符的,从左边到第一个非十进制字符的字符串将被转换: $result = "12a34" +1; # $result = 13 如果左边第一个也不是十进制字符串,将转成0: $result = "hello" * 5; # $result = 0 所以十六进制字符"0xff",将被当做0。所以: $a=1 $b="0x2" if($a>$b){ ? ? print(1); }else{ ? ? print(2); } 打印出的是1,因为$b转换成整数是0. 怎么把十六进制字串转换为对应的整数呢?用hex()函数。 $a="0xff" hex($b)将得到整数255. 把一个字符串转换成整数,也可以显式进行,用int()函数。 $a = "0123" print($a) ; #输出0123。 print(int($a)); #输出123。 int()函数跟自动转换一样,"012a3"还是会转成12. 最好不要用自动转换,还是显式转换好一些,毕竟perl让人迷惑的地方已经够多了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |