http://blogs.perl.org/users/athanasius/2019/06/perl-weekly-challenge-014.html