"if I wasn't able to reinvent the wheel myself quick/well enough."
Nothing wrong with that, imho.
I learned Perl (and programming of at least four other languages besides Perl) by trying and doing. Whether re-inventing the wheel is for learning or practice, or even if one feels they can invent a better wheel, I say go for it! I know I've both invented wheels I didn't know existed, as well as re-invent wheels I felt were a more efficient design. Right or wrong in that regard, I digress.
Think of it this way... some wheels are hammered out for so long, that we just accept that's the way the wheel should be. Sometimes however, someone comes up with a more sleek design of the wheel that makes it travel faster, with less effort. Only way that happens is if someone puts their foot forward to test a new wheel design.
For larger things (a very complex set of instructions for example), sometimes it's better (and oftentimes far easier) to just run with what's out there, and focus on your cart instead of re-designing the wheels.
For example, I've created mocking distributions, logging distributions, subroutine wrapper distributions etc, even though there are several available already. These were created because I wanted to learn. Things more complex that have a very, very good rapport (random eg. Getopt::Long) that have a spectacular history, there's no need to re-invent or try to make better that wheel (unless, of course, you become an open source contributor, and add/patch/fix the existing one).