Not to nit-pick, but it is Class::Trait actually. (which is only important because search.cpan.org's search engine being the way it is, Class::Trait does not come up on the first page of a search for Class::Traits).
Aside from the misspelling ;) chromatic is absolutely correct. The following code will do what you are asking for:
Then in the class you want to conform to the FooInferface, you can do this:# in FooInterface.pm package FooInterface; use Class::Trait 'base'; our @REQUIRES = qw(foo bar baz);
And you will get this at (sorta) compile time.package Foo; use Class::Trait 'FooInterface'; sub foo {} sub bar {} # missing &baz
I say "sorta" compile time because it is actually during the INIT phase of the compilation cycle. Which is problematic if you are running under mod_perl, or loading the Foo class with require. Both of these limitations (and the appropriate workarounds) are documented in the Class::Trait POD.stevan% perl test.pl Requirement (baz) for FooInterface not in Foo at test.pl line 0 INIT failed--call queue aborted.
In reply to Re^2: Java Style Interface Objects?
by stvn
in thread Java Style Interface Objects?
by pileofrogs
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |