Recently, I tried to install a module in a perl 5.12. This in turn required installation of Module::Build. That in turn required an update of ExtUtils::MakeMaker. And there was no way I could that upgrade installed. ExtUtils::MakeMaker depended on another module that also required to be updated, and that one in turn demanded a more recent version of ExtUtils::MakeMaker. There was no older version of either modules old enough available to upgrade both modules gently. So, I was simply stuck.
Like I said, and I'll say it again: if your dependency graph is not a tree, but instead, contains a cycle, these modules in that cycle should not be in separate distributions. Otherwise your repository is plainly broken.
p.s. Perl 5.12, to me, is modern enough. I cannot name a single significant difference between perl 5.12 and perl 5.24. Upgrading perl takes hours, because of the need to reinstall every module I ever installed. It's simply not worth it.