It's not. It's not true that you should use require to prevent import to be called. It's just one way of doing so.
I said
'should' as it implied advice, as I was also aware of your
use approach. And (to me) it's nothing to do with
preventing calling
import. I'm of the opinion
require is appropriate because we just want to bring in
Exporter's code, we're not concerned with its
import method and whether it's called or not at that point, and generally the distinction between run-time and compile-time is irrelevant when one is using
Exporter (since it'll generally be wrapped in an implicit
BEGIN block when the module is
useed) so nothing is gained by
use (or lost by it, as I said, c'est la vie).
To me it smells like cargo-cult.
Perhaps, but seeing as how I know what I'm doing when I say
require Exporter and why I'm choosing not to
use Exporter (), that kinda stops cargo-cult smell right about there.