在 Perl 程序中用作文字时,数字的处理方式与 C 中相同:“0x”前缀表示十六进制,“0”前缀表示八进制,无前缀表示十进制:
$ perl -E 'print 0x23 . "\n"'
35
$ perl -E 'print 023 . "\n"'
19
$ perl -E 'print 23 . "\n"'
23
我想使用相同的符号将命令行参数传递给 Perl。例如,如果我通过 23,我想将字符串参数转换为十进制值 (23)。如果我通过 0x23,我想转换为十六进制值 (35),而 023 将转换为八进制 (19)。有没有内置的方法来处理这个?我知道 hex() 和 oct(),但它们将没有前缀的数字分别解释为 hex/oct(不是十进制)。按照这个约定,我似乎想要一个 dec() 函数,但我认为它不存在。