use Data::Dump; my @arr = qw/ 10 20 0b1101 0xF 023 /; dd @arr; my @converted = map {/^0/ ? oct : $_} @arr; dd @converted; __END__ (10, 20, "0b1101", "0xF", "023") (10, 20, 13, 15, 19)