Acme-GRYLLIDA-Utils
view release on metacpan or search on metacpan
lib/Acme/GRYLLIDA/Utils.pm view on Meta::CPAN
A list of functions that can be exported.
sum()
=head1 SUBROUTINES/METHODS
=head2 sum
This function returns a sum of its arguments. Non-number arguments are ignored. No arguments returns undef.
=cut
sub sum {
my $sum;
foreach my $num ( grep {/\A-?\d+\.*\d*\z/ } @_ ) {
$sum += $num;
}
$sum;
}
use Test::More;
BEGIN { use_ok( 'Acme::GRYLLIDA::Utils' ) }
ok(defined &sum, 'sum() is exported' );
is(sum( 1, 2, 3 ), 6, '1+2+3 is six' );
is(sum( qw(1 2 3) ), 6, '1+2+3 as strings is six' );
is(sum( 4, -9, 37, 6 ), 38, '4â9+37+6 is six' );
is(sum( 3.14, 2.2 ), 5.34, '3.14 + 2.2 is 5.34' );
is(sum(), undef, 'No arguments returns undef' );
is(sum( qw(a b) ), undef, 'All bad args gives undef' );
is(sum( qw(a b 4 5) ), 9, 'Some good args works' );
done_testing();
( run in 0.999 second using v1.01-cache-2.11-cpan-d80b1682f3f )