NAME Text::Roman - Converts roman algarism in integer numbers and the contrary, recognize algarisms. SYNOPSIS use Text::Roman; print roman(123); DESCRIPTION Text::Roman::roman() is a very simple algarism converter. It converts a single integer (in arabic algarisms) at a time to its roman correspondent. The conventional roman numbers goes from 1 up to 3999. MROMANS (milhar romans) range is 1 up to 3999*1000+3999=4002999. Up to these number we will found symbols as:??????but they do not concern this specific package. There is no concern for mix cases, like 'Xv', 'XiiI', as legal roman algarism numbers. roman($int): return string containing the roman corresponding to the given integer, or '' if the integer is out of domain... roman2int($str): return '' if $str is not roman or return integer if it is. isroman($str): verify whether the given string is a conventional roman number, if it is return 1; if it is not return 0... Quite same follows for mroman2int($str) and ismroman($str), except that these functions treat milhar romans. SPECIFICATION Roman number has origin in following BNF-like formula: a = I{1,3} b = V\a?|IV|\a e = X{1,3}\b?|X{0,3}IX|\b ee = IX|\b f = L\e?|XL\ee?|\e g = C{1,3}\f?|C{0,3}XC\ee?|\f gg = XC\ee?|\f h = D\g?|CD\gg?|\g j = M{1,3}\h?|M{0,3}CM\gg?|\h REFERENCES Especification supplied by redactor's manual of newspaper "O Estado de São Paulo". URL: http://www.estado.com.br/redac/norn- nro.html EXAMPLE use Text::Roman; $roman = "XXXV"; $mroman = 'L_X_XXIII'; print roman(123), "\n"; print roman2int($roman), "\n" if isroman($roman); print mroman2int($mroman), "\n" if ismroman($mroman); BUGS No one known. AUTHOR Peter de Padua Krauss, krauss@ifqsc.sc.usp.br. COPYRIGHT 1.2-krauss/set/97; 1.0-krauss/3/ago/97