Why having two arrayrefs dealing with the same information, i.e. methods? This seems error-prone from a user (= programmer)'s point of view. Wouldn't a hashref with names as keys and coderefs as values be more transparent?
As a second remark: you can define objects, but it would be convenient to have the concept of classes since with this approach types seem rather ad hoc. Two objects of the same class need not have the same methods, which is sometimes convenient but... ehrm, unpleasant in general
I'm not very fond of the $obj->incant('action', @args) invocation, but granted, that's personal taste (or lack thereof ;-) The incant seems to diminish readability.