Solution: Roman numbers



examples/regex-perl/is_roman_number.pl
#!/usr/bin/perl
use strict;
use warnings;

while (my $number = <STDIN>) {

    # This solution only check is the string consists of characters
    # used in as Roman numbers but does not check if the number is
    # actually a valid number. (e.g. IVI is not valid)
    # I yet to see a definition on how to validate a Roman number.
    if (is_roman($number)) {
        print "Roman number\n";
    }
}

sub is_roman    { $_[0] =~ /^[IVXLCDM]+$/    }

sub is_roman2   { $_[0] =~ /^
    (M{0,4})
    (CM|CD|D?C{0,3})
    (XL|XC|L?X{0,3})
    (IV|IX|V?I{0,3})
    $/x  }