{ my @rtoa; @rtoa[unpack 'c*', 'MDCLXVImdclxvi'] = (qw(1000 500 100 50 10 5 1)) x 2; sub roman_to_dec { my $n = 0; $n += $_ - $n % $_ * 2 for @rtoa[ unpack 'c*', shift ]; $n; } }