Okay. Here's an attempt to share what I've learned so far in Perl, without writing a book of my own:
Perl is used for all kinds of things in the computer world, including text processing and manipulation (which includes searching and reporting), system administration (tying together and automating smaller tasks), web development, and database management.
Perl is free (under both the GPL and an "artistic license"), and, like Linux and true free/open source programs, it is community-based and community-driven. The fullest expressions of this community (that I've seen) are the Perl Monks website, which provides forum-based support and sharing, and the Comprehensive Perl Archive Network (CPAN), which is a huge repository of Perl modules and other programs that are shared to prevent wheel reinvention. As new Perl users become more experienced, they are encouraged to help others via Perl Monks or by contributing to CPAN when they come up with something new and useful.
There is a culture surrounding the community and the language that seems to center on the offbeat views of the language's inventor Larry Wall, who aside from being the patron saint of the Perl universe, is a committed Christian who sees Perl as a small way in which he has made the world a better place. Among Wall's often-quoted aphorisms is the observation that the three virtues of a good programmer are laziness, impatience, and hubris, to which he later added the virtues of diligence, patience, and humility (of course, the polar opposites). This sort of wordplay and whimsy permeates the Perl community, and apparently the "Camel" book is as much an introduction to the culture of Perl as it is a reference for Perl the programming language.
Most of the work in Perl is done by the Perl interpreter (referred to as "perl" - lower case), and the programmer's job is to write scripts that make the perl program do what you're trying to accomplish. One of the stated goals of Perl is to make the easy easy and the difficult possible. This is something that I'm beginning to understand. For the last few weeks I've been joking (to myself, of course - no one else in my life is interested!) that Perl is "automated algebra." In the past couple of days, though, I'm realizing that wow! yes, Perl is automated algebra!
I'm beginning to see (I'm thick, I know) that Perl just gives you tools to define the logic of your problem, and after you've put it all together, Perl will do the work for you. Perl is automated logic (if . . . then, but not . . ., while . . ., etc.), and whatever programs you write are only limited by your logical or mathematical skill.
I've also learned specific language skills, which I will detail in a later post, but this "aha" moment should give me the motivation to gain some true proficiency in Perl so I can get to work!
Sunday, June 1, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment