This will work with any Plain Old Perl Package, no Moose-ness required.
my @methods = Class::MOP::Class->initialize('Class::Name')->compute_al
Each element of @methods
will be a HASH ref containing
- method name
- the name of the class in which the method lives
- a Class::MOP::Method instance that contains the CODE ref for the actual method
As with your version (and pretty much any introspection out there) it will not handle AUTOLOAD (IMO - AUTOLOAD is evil anyway, it shouldn't be used and any modules that use it should be treated with suspicion). It will also properly ignore imported functions as well, like if you were to import Scalar::Util
::blessed into your package, Class::MOP::Class
would properly ignore it since it is not a method.