歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> PERL編程

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讓人迷惑的地方已經夠多了。

Copyright © Linux教程網 All Rights Reserved