#!/usr/bin/perl -w use strict; my %numeral = ( 'I' => 1, 'V' => 5, 'X' => 10, 'L' => 50, 'C' => 100, 'D' => 500, 'M' => 1000, ); print "Enter name: "; while ( chomp( my $phrase = ) ) { my $sum = 0; $phrase = uc($phrase); $phrase =~ tr(U)(V); for my $letter ( split // => $phrase ) { $sum += $numeral{$letter} || 0; } markOfTheBeast(), last if $sum == 666; print "The number is $sum ... blessed be!\n", "Enter name: "; } sub markOfTheBeast { print <## sub RtoD { # ... or uc(shift) to be paranoid. :-) my $n = shift || return 0; if ( $n =~ /([IVXCLMD])/ ) { return $numeral{$1} } else { return 0 } }