https://github.com/drbaggy/perlweeklychallenge-club/tree/master/challenge-173/james-smith