There are more problems than that. This is why I usually write classes with separate packages for class methods, object methods, and utility functionsmethods. Unfortunately, caller and thus SUPER: and its ilk are still too stupid to deal with code that actually prevents such method confusion:
package My::Class::_implement;
use Scalar::Util qw( weaken );
sub My::Class::new {
# ...
}
sub My::Class::Object::method {
# ...
weaken( $someRef );
# ...
}
Yes, you can abstract out having to re-type class names fairly easily; this is just a quick example.
|