package GateKeeper; use strict; my $package_list = {}; sub register { my ($package) = caller(); perform_tests($package); # ensure all required subs are defined $package_list->{$package} = $package->cvs_version(); # cvs_version() sub is tested in perform_tests } # other subs to query cvs version info and other fun stuff