You could go the route you described and call your script from another script (bash/batch/perl/whatever) that loops through the different parameters but also passes a unique value for the coverage db (based on the arguments, pid, or whatever).
The invocation of Devel::Cover would be slightly different: perl -MDevel::Cover=-db,cover_db-<unique value> my_file.pl -arg1 <arg1_value> -arg2 <arg2_value>.
When all of the calls to your script are done, you'd simply call the cover script passing a wildcard for the coverage database like cover -report=html cover_db-*