Keep It Simple, Stupid PerlMonks

comment on

 Need Help??
This is a very silly script I wrote to demonstrate the very possibility of how something could be done this way. The regex is to convert roman numerals to integers. It is neither useful nor witty.

```use strict;

sub l { return length shift }
sub roman2int {
\$_ = shift;
/(M*)(?{\$a+=1000*l\$1})(D*)(?:(?!M)(?{\$a+=500*l\$2})|(?{\$a-=500*l\$2}
+))(C*)(?:(?![MD])(?{\$a+=100*l\$3})|(?{\$a-=100*l\$3}))(L*)(?:(?![MDC])(?
+{\$a+=50*l\$4})|(?{\$a-=50*l\$4}))(X*)(?:(?![MDCL])(?{\$a+=10*l\$5})|(?{\$a-
+=10*l\$5}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$6})|(?{\$a-=5*l\$6}))(I*)(?:(?![
+MDCLXV])(?{\$a+=1*l\$7})|(?{\$a-=1*l\$7}))(M*)(?{\$a+=1000*l\$8})(D*)(?{\$a+
+=500*l\$9})(C*)(?:(?![MD])(?{\$a+=100*l\$10})|(?{\$a-=100*l\$10}))(L*)(?:(
+?![MDC])(?{\$a+=50*l\$11})|(?{\$a-=50*l\$11}))(X*)(?:(?![MDCL])(?{\$a+=10*
+l\$12})|(?{\$a-=10*l\$12}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$13})|(?{\$a-=5*l\$
+13}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$14})|(?{\$a-=1*l\$14}))(C*)(?{\$a+=10
+0*l\$15})(L*)(?:(?![MDC])(?{\$a+=50*l\$16})|(?{\$a-=50*l\$16}))(X*)(?:(?![
+MDCL])(?{\$a+=10*l\$17})|(?{\$a-=10*l\$17}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$
+18})|(?{\$a-=5*l\$18}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$19})|(?{\$a-=1*l\$19
+}))(L*)(?{\$a+=100*l\$20})(X*)(?:(?![MDCL])(?{\$a+=10*l\$21})|(?{\$a-=10*l
+\$21}))(V*)(?:(?![MDCLX])(?{\$a+=5*l\$22})|(?{\$a-=5*l\$22}))(I*)(?:(?![MD
+CLXV])(?{\$a+=1*l\$23})|(?{\$a-=1*l\$23}))(X*)(?{\$a+=10*l\$24})(V*)(?:(?![
+MDCLX])(?{\$a+=5*l\$25})|(?{\$a-=5*l\$25}))(I*)(?:(?![MDCLXV])(?{\$a+=1*l\$
+26})|(?{\$a-=1*l\$26}))(X*)(?{\$a+=10*l\$27})/;
return \$a;
}
print roman2int shift;

In reply to Re: The craziest RegExes you ever created by zshzn
in thread The craziest RegExes you ever created by Ieronim

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
• Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
• Read Where should I post X? if you're not absolutely sure you're posting in the right place.
• Posts may use any of the Perl Monks Approved HTML tags:
a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
• You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
 For: Use: & & < < > > [ [ ] ]
• Link using PerlMonks shortcuts! What shortcuts can I use for linking?

Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2020-11-28 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?