http://qs321.pair.com?node_id=11124184


in reply to Re^5: A short whishlist of Perl5 improvements leaping to Perl7
in thread A short whishlist of Perl5 improvements leaping to Perl7

Alternative - yes, better - ???

Why use a map - "slices forever !!"

{ my %rtoa = ( M=>1000, D=>500, C=>100, L=>50, X=>10, V=>5, I=>1 ); sub roman_to_dec { reduce { $a+$b-$a%$b*2 } @rtoa{split//, uc(shift)} } }

Or double your fun with a double-split.

sub roman_to_dec { reduce { $a+$b-$a%$b*2 } @{{split/(\d+)/, 'M1000D500C100L50X10V5I1'}}{split//, uc pop} }

Or back to a map...

sub roman_to_dec { reduce { $a+$b-$a%$b*2 } map 'M1000D500C100L50X10V5I1' =~ /$_(\d+)/i, split//, pop }

Well, that was fun - thanks