aboutsummaryrefslogtreecommitdiff
path: root/challenge-031/dave-cross
diff options
context:
space:
mode:
authorDave Cross <d.cross@fairfx.com>2019-10-21 08:28:59 +0100
committerDave Cross <d.cross@fairfx.com>2019-10-21 08:28:59 +0100
commit1040bc1893cb03db5f65f1d506d8075f98bf4e60 (patch)
treea134b605ea7b0c6dc74931d5b58a70d90dfba573 /challenge-031/dave-cross
parent171580e3ff4723e0308253cf7fb43abf9c1626b1 (diff)
downloadperlweeklychallenge-club-1040bc1893cb03db5f65f1d506d8075f98bf4e60.tar.gz
perlweeklychallenge-club-1040bc1893cb03db5f65f1d506d8075f98bf4e60.tar.bz2
perlweeklychallenge-club-1040bc1893cb03db5f65f1d506d8075f98bf4e60.zip
Challenge #031 / Task #1
Diffstat (limited to 'challenge-031/dave-cross')
-rw-r--r--challenge-031/dave-cross/perl5/ch-1.pl34
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';
+ }
+}