in reply to using a sub routing as an argument

This is a perfect opportunity to take advantage of can e.g
&$_ for map { __PACKAGE__->can($_) || () } @ARGV;
That map provides the for with a list of subroutines that exist in the current package whose names correspond to the values in @ARGV.
HTH

_________
broquaint