in reply to Could I get some feedback on my code please?

If you have to do a bunch of substitutions as in fetchArticleCreator, a common trick is to use a for loop with just one element, in which the variable to be operated on is aliased to a localized $_:
my $articleHistoryContents = $response->content(); for ($articleHistoryContents) { s/[\s\S]*?<ul id="pagehistory">//; s/<\/ul>[\s\S]*/<br>/; s/<\/li>[\s\S]*?<li>/<br>/g; s/<li>//g; ... }

That way you need not repeat the variable on each line.

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}