in reply to Re^5: Questions about sharing code (@EXPORT_OK++)
in thread Questions about sharing code

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.

- tye