There have been a few times when I have had to eschew the
help of the Net:: or Mail:: modules because I was trying
to do things that the modules ... ummmm ... were not really
designed to do ( no, really, I was forging mail headers in
the cause of good - namely, so the whining users couldn't
reply to my email ). I likely could have dug deep into the
documentation and figured out how to get the module to jump
through the hoops I needed, but it was ( in that case alone )
honestly easier for me to write my own little nasty function
to do the work.
I have also been on a few projects where the idea was to ship
a module such that it could run on any perl. However, we
developed the habit ( if they were pure perl modules ) of
either including them in the distro or ( horror ) embedding
them directly into the file we distributed ( again, please
believe me that the original authors were given full credit
and no attempt was made to imply I was smart enough to
write all the code ).
There are a few excuses for not using CPAN. They are very
few though, and CGI.pm is simply not one of them. That has
been part of the core since at least 5.003.