将 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
.