in reply to How best to implement multiple interfaces in perl

Hmm, sounds like you might want to check out Moose. You can get compile time checked "interfaces" by using roles. Here is a very simplistic example of roles, however, it demonstrates totally abstract roles (the Printable role which just requires a to_string method to be implemented by any class which consumes it) as well as partially abstract roles in which only some methods are required.

In addition, Moose offers full fledged attributes (instance variables, member variables, whatever you want to call them) which are supported in roles as well. A fair amount of information can be found in the Moose::Cookbook and you can also check out the website which has links to 4 talks given on Moose which serve as excellent introductions.

-stvn