in reply to Binding C libraries
The prevailing attitude seems to be OO with added procedural options if you can provide the functionality in a simple one-shot function.
Regardless, do not export by default. I mean it! PLEASE PLEASE PLEASE
We've been telling people not to do this for while, but standards seem to be slipping a little lately, with even quite new modules exporting things like "copy" into the callers namespace.
My suspicion is that it is because many of the older File:: module do this, and so people think that it is ok.
Your one exception might be if the most likely name is something truly odd, like "encode_rfc30042" that is pretty much NEVER going to collide with anything.