CPAN is no more an external dependancy than is having the right version of libc or the latest security patches to SSH...you have to be able to deal with these things.
Plus, you can always download/install a local copy to your home directory (or any directory) and check it in to version control if you have a problem with deployment in network-constrainted environments.
as to the OOP question, my stance on design patterns is another story... Dominus is more eloquent than I, and he bites his tongue more too: Design Patterns Aren't