При использовании в качестве литералов в программе Perl цифры обрабатываются так же, как в C: префикс «0x» означает шестнадцатеричный, префикс «0» означает восьмеричный, а префикс десятичный:Обработка аргументов командной строки с различными размерами в Perl
$ 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(), но я не думаю, что это существует.
Не знал, что 'Октябре()' может преобразовать шестнадцатеричный и двоичный, а также; не смог бы сказать от имени – doubleDown
И я тоже - хороший трюк. Всегда что-то новое, чтобы учиться в 'perlfunc'. +1. – friedo
Oct() однострочный. Благодаря! – FazJaxton