Sha256: 961ea3e02bda23155e8f74dd22438db74bee2cc5b50c40142aa1490232691624

Contents?: true

Size: 678 Bytes

Versions: 323

Compression:

Stored size: 678 Bytes

Contents

package Example;

use strict;
use warnings;

my %ROMANS = qw(
    1000 M
     900 CM
     500 D 
     400 CD 
     100 C 
      90 XC 
      50 L 
      40 XL 
      10 X 
       9 IX 
       5 V 
       4 IV 
       1 I 
);

sub new {
    return bless {
       decimal => $_[1] 
    } => $_[0]
}

sub to_roman {
    my $self = shift;
    my $decimal = $self->{decimal};
    my $roman;
    my @places = sort {$b <=> $a} keys %ROMANS;

    use integer;

    while ( $decimal > 0 ) {
        my $key = shift @places;
        my $repeat = $decimal / $key;
        $decimal  -= $key * $repeat;
        $roman    .= $ROMANS{$key} x $repeat;
    }

    return $roman;
}

__PACKAGE__;

Version data entries

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.105 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.104 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.103 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.102 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.101 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.100 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.99 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.98 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.97 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.96 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.95 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.94 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.93 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.92 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.91 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.90 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.89 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.88 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.87 tracks/perl5/exercises/roman-numerals/Example.pm
trackler-2.2.1.86 tracks/perl5/exercises/roman-numerals/Example.pm