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