Potocol
Description
The idea here is to have a "set of methods". So, you can test a class based on that set of methods. But different from roles with stubbed methods it doesn't need do be "doesed" to be matched. It does create a subset but using a different syntax, and will check the methods.
Synopsis
use Protocol; protocol Writer { # creates a Writer protocol that have a write method method write { ... } } sub write(Writer $w) { # accepts a Writer $w.write } class JustAGreeter { # no roles, parents nor protocols declared on the class method write { # it has the write method, so it attends to the protocol say "Hello protocol!" } } write JustAGreeter.new; # prints: Hello protocol!