Sha256: f64f822ededa28eb661bcff4140c49f55b1ae498a1fd967683e6e037aaaf43d2

Contents?: true

Size: 707 Bytes

Versions: 323

Compression:

Stored size: 707 Bytes

Contents

package Example;

use strict;
use warnings;

my %orbital_period = qw(
    mercury 0.2408467
      venus 0.61519726
      earth 1
       mars 1.880818
    jupiter 11.862615
     saturn 29.447498
     uranus 84.016846
    neptune 164.79132
);

sub new {
    bless { seconds => $_[1] } => $_[0];
}

sub seconds { $_[0]->{seconds} }

sub _on_planet {
    my ($self, $planet) = @_;
    my $earth_years = $self->seconds / 31_557_600;

    return sprintf "%.2f" => ($earth_years / $orbital_period{$planet});
}

sub AUTOLOAD {
    my $sub = our $AUTOLOAD;
    $sub =~ s/.*::on_//;

    if ( grep { $_ eq $sub } keys %orbital_period ) {
        my $self = shift;
        return $self->_on_planet($sub);
    }
}

1;

Version data entries

323 entries across 323 versions & 1 rubygems

Version Path
trackler-2.2.1.65 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.64 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.63 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.62 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.61 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.60 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.59 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.58 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.57 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.56 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.55 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.54 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.53 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.52 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.51 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.50 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.49 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.48 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.47 tracks/perl5/exercises/space-age/Example.pm
trackler-2.2.1.46 tracks/perl5/exercises/space-age/Example.pm