my $x = 4;
my $y = 3;
my $z = $x * $y;
say $z;
####
use 5.010;
my @numbers = qw(1 3 5 6 7 8);
my $sum = 0;
for my $num (@numbers)
{
$sum += $num;
}
say $sum;
##
##
use 5.010;
my @numbers = qw(1 3 5 6 7 8);
sub sum
{
my $sum = 0;
for my $num (@_)
{
$sum += $num;
}
return $sum;
}
say sum(@numbers);
##
##
use 5.010;
my @numbers = qw(1 3 5 6 7 8);
sub reduce (&@)
{
my ($code, $first, @rest) = @_;
return $first unless @rest;
return $code->(
$first,
reduce($code, @rest),
);
}
sub sum
{
return reduce { $_[0] + $_[1] } @_;
}
say sum @numbers;
##
##
use 5.010;
use IO::Handle;
my @numbers = qw(1 3 5 6 7 8);
{
package Sum;
use Any::Moose;
has total => (is => 'rw', isa => 'Num', default => 0);
sub add
{
my ($self, $num) = @_;
$self->total( $self->total + $num );
}
}
my $answer = Sum->new;
$answer->add($_) for @numbers;
STDOUT->say( $answer->total );