use Data::Dump; my $val = "034"; $val = oct $val if $val=~/^0/; dd $val; # 28 # or, for a list of values: my @vals = qw/ 10 20 0b1101 0xF 023 /; /^0/ and $_=oct for @vals; dd @vals; # (10, 20, 13, 15, 19)