A legitimate reason to avoid modules is that for those not steeped in the perl way, installing stuff from the CPAN is difficult - "what are all these questions it's asking me? I'm confused!" - and that installing stuff from the CPAN locally in your own directory is Dark Magic for most people. You can disagree with that if you like - lots of perl people do disagree with it. That's fine. You're allowed to be wrong.
That's why rsnapshot (which I used to maintain, I've handed over to someone else now) requires no non-core modules at all, at the expense of lots of wheel-reinvention. In a lot of cases, rsnapshot will be the first time perl has been used on a machine (aside from anything that the OS itself uses it for) and so CPAN.pm won't be configured.
For stuff targetted more at a perly audience where familiarity with installing CPAN modules can be taken as given, I do of course use other peoples' modules. But even so, I don't bother if I only need a tiny trivial piece of functionality. use File::Slurp; ...read_file... is ridiculous overkill. I avoid pointless dependencies like that because I know that if I don't, my code will be made harder to install even for perl-heads. That's because if any of my pre-requisites fail, then CPAN.pm won't install them, and then it won't install my code because my code won't pass its tests without 'em.