Consider implementing a "callback" system as an option over (or in place of) the warn statement. Allow the programmer to provide a coderef that gets called with the object ($self) and the warning message as arguments.

Consider the applications to event-based environments like Tk, GTK+, etc., that may not have a STDERR in the traditional sense.