Put the no-op method in. That simplifies your client code so that it has to conform to a simpler API vs. having to know internals.
Or, put it another way, what would you do to me if I published something to CPAN that required the can() crap?
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?