|No such thing as a small change|
If you think about it, this relates to Perl and other programming languages perfectly. Why did the "cargo cult" think that making a runway with lights (fires) and sticks to direct there airplanes would make the airplanes arrive? Because they didn't have all of the information, and it wasn't easily available! The missing link was the radio to call the airplanes, which would have been locked and off-limits. C/C++/Java are very similar. You can get some really cool module/libraries, but you can't learn how they work because you don't get the source code.
But Perl is different...
Because of great communities like PerlMonks, not only are there repositories of code, but also excellent descriptions of how they work. And with the open nature of Perl, if you want to know how a module like CGI.pm works, take a look. The source code is there for you to read. Almost nothing is hidden! Try that with C, C++, or Java.
One of the best things, IMHO, about perl is that it allows you to easily experiment. I use test.pl all the time now. I'm always testing snippets of code to make sure I understand what is going to happen before I stick it in a big script. It makes it easy to try new techniques and commands. This really reduces the amount of time I spend not only writing the overall script, but also debugging time.
All of this combines to make Perl easy to pick up and start using, even if you don't understand all of the "why". Then, as you use it more, its easy to pick pieces of the language to learn more about and understand how things work. My own Perl experience has followed that course.
In other words, the door to the radio room is open, and everyone is encouraged to talk...