https://github.com/drbaggy/perlweeklychallenge-club/new/master/challenge-138/james-smith