diff options
| author | Dave Cross <d.cross@fairfx.com> | 2019-10-21 08:28:59 +0100 |
|---|---|---|
| committer | Dave Cross <d.cross@fairfx.com> | 2019-10-21 08:28:59 +0100 |
| commit | 1040bc1893cb03db5f65f1d506d8075f98bf4e60 (patch) | |
| tree | a134b605ea7b0c6dc74931d5b58a70d90dfba573 /challenge-031/dave-cross | |
| parent | 171580e3ff4723e0308253cf7fb43abf9c1626b1 (diff) | |
| download | perlweeklychallenge-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.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'; + } +} |
