my %Lookup = (M => 0, D => 1, C => 2, L => 3, X => 4, V => 5, I => 6); while () { my $out = "." x 7; while (m/([MDCLXVI])/g) { substr ($out, $Lookup{$1}) = "." x (length($out) - $Lookup{$1}); substr ($out, $Lookup{$1}, 1, $1); s/$1//g; } print $out; }