perl中的字符串和数值

$string = "11";
$number = 22;
$result = $string + $number; # $result = 33

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让人迷惑的地方已经够多了。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值