in reply to list all subs in a package

First thing that leaps out at me is that prototypes are generally a bad idea.

My bigger comment is that when someone tells me they are finding coderefs in a package I understand that to mean only things that I can call as subroutines rather than as methods. Therefore rather than using $pkg->can you should use *{"$pkg\::$name"}{CODE} (see perlref for an explanation).