ACME-THEDANIEL-Utils
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/ACME/THEDANIEL/Utils.pm view on Meta::CPAN
=head1 SYNOPSIS
Used to complete the Intermediate Perl textbook
=head1 SUBROUTINES/METHODS
=head2 sum
=cut
sub sum {
my $sum;
foreach my $num ( @_ ) {
if ( !looks_like_number( $num ) ) {
croak "Invalid input: $num"
}
$sum += $num;
}
return $sum;
}
use Test::Exception;
use ACME::THEDANIEL::Utils;
BEGIN {
use_ok( 'ACME::THEDANIEL::Utils' ) || print "Bail out!\n";
}
is( ACME::THEDANIEL::Utils::sum( 1, 2, 3, 4 ), 10, "multiple numbers sum" );
is( ACME::THEDANIEL::Utils::sum( 1 ), 1, "single number sum" );
throws_ok( sub { ACME::THEDANIEL::Utils::sum( 1, 2, "Three" ) }, qr/Invalid input: Three/, "One bad arg out of many");
throws_ok( sub { ACME::THEDANIEL::Utils::sum( "Three" ) }, qr/Invalid input: Three/, "invalid single input");
is( ACME::THEDANIEL::Utils::sum(), undef, "empty input" );
xt/boilerplate.t view on Meta::CPAN
#!perl -T
use 5.006;
use strict;
use warnings;
use Test::More;
plan tests => 3;
sub not_in_file_ok {
my ($filename, %regex) = @_;
open( my $fh, '<', $filename )
or die "couldn't open $filename for reading: $!";
my %violated;
while (my $line = <$fh>) {
while (my ($desc, $regex) = each %regex) {
if ($line =~ $regex) {
push @{$violated{$desc}||=[]}, $.;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.113 second using v1.00-cache-2.02-grep-82fe00e-cpan-c30982ac1bc3 )