RosettaCodeData/Task/Roman-numerals-Decode/Perl/roman-numerals-decode-2.pl
2023-07-01 13:44:08 -04:00

20 lines
320 B
Perl

#!/usr/bin/perl
use strict;
use warnings;
sub roman2decimal
{
(local $_, my $sum, my $zeros) = (shift, 0, '');
$zeros .= 0 while
$sum -= s/I(?=[VX])// - s/V// * 5 - s/I//g . $zeros,
tr/MDCLX/CLXVI/;
return $sum;
}
print s/$/ ": " . roman2decimal($_) /er while <DATA>;
__DATA__
MCMXC
MMVIII
MDCLXVI