in reply to strict refs usage

That depends on what you want to do. If you want to use names of subroutines in a list, and use the names to call the subs, you will be using symbolic references - which will not be permitted with 'use strict "refs"'. So, you're only option is to turn of 'use strict "refs"' when performing this call. And there's nothing wrong with that. 'use strict "refs"' prevents you from accidently using symbolic references - but here, you are doing it on purpose.

Another way of handling this situation is to use the line

my @testlist = (\&test1, \&test2);
This gives you actual code references. However, I realize your program is just a mockup - and in your real program the list of names might come from somewhere else, and can't be replaced with a list of code references.