Yes, you are absolutely correct. Usually I just use EXPORT_OK as one of my guiding lights is that package namespaces should be as clean as possible (and no cleaner). However, even when I do use EXPORT, I still make an effort to explicitly mention the function on my use line - not because I have to, but because it cuts down on garbage in my namespace (not that anyone besides me cares) as well as saving me the confusion of where foo() comes from later on when I'm reading my code from six months ago that was apparently written by a demented baboon.