Personally I almost always 'use' require unless I have some pressing need for magic in the module that requires the import sub to be called. I just dislike the namespace pollution that calling 'use' entails, such as not knowing exactly what functions it imports. Of course I could read the docs and find the list of functions.. unless of course the docs are out of date..

But I don't like having the function imported anyways, whether I know what the name is or not. I vastly prefer 'Foo::Baz()'; as when it functions as self commenting code, when I return to the module 6 months later I can instantly look at it and say "I know where that function is", as opposed to wandering around through dozens of other modules. So what do you prefer? The laziness of use or the preciseness of require?