Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use strict;
- use warnings;
- package Planet {
- use Moose;
- use Math::Trig;
- has name => (is => 'ro');
- has mass => (is => 'ro', isa => 'Num');
- has radius => (is => 'ro', isa => 'Num');
- use overload '""' => sub { shift->name };
- sub density {
- my $self = shift;
- my $volume = 4 / 3 * pi * ($self->radius ** 3);
- return $self->mass / $volume;
- }
- }
- my $planet = Planet->new(
- name => 'Jupiter',
- mass => 1.898E27,
- radius => 6.9911E7,
- );
- printf "The density of $planet is %.0f (kg/m³)\n", $planet->density;
- #!/usr/bin/env perl6
- class Planet {
- has Str $.name is required;
- has Num $.mass is required;
- has Num $.radius is required;
- method Str { $.name; }
- method density {
- my Num $volume = 4 ÷ 3 × π × $.radius³;
- return $.mass ÷ $volume;
- }
- }
- my $planet = Planet.new(
- name => 'Jupiter',
- mass => 1.898E27,
- radius => 6.9911E7,
- );
- say "The density of $planet is { $planet.density.round } (kg/m³)";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement