diff options
| -rw-r--r-- | challenge-031/dave-cross/perl5/ch-1.pl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-031/dave-cross/perl5/ch-1.pl b/challenge-031/dave-cross/perl5/ch-1.pl new file mode 100644 index 0000000000..2f6e43fb33 --- /dev/null +++ b/challenge-031/dave-cross/perl5/ch-1.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use feature 'say'; + +sub throws_divide_by_zero_error { + my ($numerator, $denominator) = @_; + + eval { + no warnings 'void'; + $numerator / $denominator; + }; + + if ($@) { + return $@ =~ /^Illegal division by zero/; + } + + return; +} + +my @numbers = ( 0 .. 10 ); + +for (1 .. 20) { + my $num = @numbers[rand @numbers]; + my $den = @numbers[rand @numbers]; + + print "Dividing $num by $den "; + if (throws_divide_by_zero_error($num, $den)) { + say 'throws a divide by zero error'; + } else { + say 'is ok'; + } +} |
