in reply to Re^2: Mixing @EXPORT and use base
in thread Mixing @EXPORT and use base

Well... you don't have to make it smarter, you can rewrite it as
sub external { shift; # rest of code }
It just requires that it should always be called as a method.

I do this all the time, but I guess it's a matter of taste.

edit: removed class from "always be called as a method"