In a previous incarnation, I persuaded make to do almost the same thing as you require - AFAIR, it was along the lines of ...
MODULES = module-a-1.0 module-b-1.1
all:
perl -e '\
foreach ((qw/$(MODULES)/)) {\
chdir($$_) or die("chdir($$_) failed - $$!");\
system("perl Makefile.PL");\
system("$(MAKE) test install");\
}\
'
- As the host machine was air-gapped from the intraweb, direct installation from CPAN wasn't an option - hence all modules had previously been downloaded.
- I was lucky in as much as all the modules I required used the Makefile.PL method of creation.
- I used perl in the make script since this was written for use on a Windoze machine.
HTH
At last, a user level that best describes my experience :-))