將 EXPR 解釋為十六進位字串,並傳回對應的數字值。如果省略 EXPR,則使用 $_
。
print hex '0xAf'; # prints '175'
print hex 'aF'; # same
$valid_input =~ /\A(?:0?[xX])?(?:_?[0-9a-fA-F])*\z/
十六進位字串由十六進位數字和選用的 0x
或 x
字首組成。每個十六進位數字前面都可以加上一個底線,這個底線會被忽略。任何其他字元都會觸發警告,並導致字串的其餘部分被忽略(甚至前導空白,這與 oct
不同)。只能表示整數,而整數溢位會觸發警告。
若要轉換可能以 0
、0x
或 0b
開頭的字串,請參閱 oct
。若要將某個東西表示為十六進位,請查看 printf
、sprintf
和 unpack
。