Turning the Tides on Perl's Attitude Toward Beginners

The Perl community has held tight to a “zero tolerance” policy for beginners. The transition to a more accepting, responsible community has begun. The past is behind us and the future looks brighter.

The Way We Were

As far back as I can remember, asking a question that has been answered before is one of the many deadly sins of the Perl community. The general attitude revolved around, “If the docs are good enough for me, they’re good enough for you. RTFM.” One first-time programmer could easily accumulate 10 flames in his inbox after asking a question about why this code didn’t print anything out:

  my $input    = <STDIN>;
  my $username = chop( $input );
  print "$username";

After said programmer has been flambe’ed to perfection they have to endure five more messages concerning the use of chop() and its evils, not to mention a handful of warnings about why putting double quotes around $username will cause famine in the land. Granted, these last few messages contain good information, but it’s unlikely the beginner will even read these messages. Why would anyone want to subject themselves to more abuse when it’s easier to delete the messages and move on to another programming language?

It seems that the very thing we want to have happen, adding number to our ranks, is the first thing we fight against when beginners show their faces. Wielding our swords of “RTFM” and shields of “killfile” we smite the very programmers that will carry this language into the future. I have a co-worker who is known for saying, “It’s a good thing Perl is so powerful and cool, it barely makes up for the collective, childish ‘elitism’ displayed by its community.” Collectively, this is a sad truth.

Many programmers end up turning to alternate languages and communities, ones that don’t require them to carry fire trucks in their back pocket. For instance, Python has a mailing list designed to be a “Help Desk.” It doesn’t get much better than that for a beginner.

Another path to travel is the pay software route. If I pay Microsoft for their software, developer resources and customer support, they’ll be nice to me. They won’t call me a newbie. They won’t prepare the clue stick, they’ll give me all the answers I need. Believe it or not, folks, this is our competition, too. Forget about a single programmer turned away, this affects whole companies. A corporation has the wallet to turn away from Perl if it feels the support is “lacking.”

One would figure that, with Perl’s age, the community would have fostered a powerful, useful medium to ease the newcomer into our world. When a child is born, it requires extreme amounts of care, attention and guidance for several years. Most children aren’t told to sit in the corner and RTFM until they get it; that’s cruel and unusual punishment. Why then, must we be any different? We all have the ability to help programmers grow and mature, to shape their views and opinions. It’s time for us to open up and give back to our trade. All of us have received gentle guidance; we are all capable of giving some back.

In short, no good has come of this.

A Step in the Right Direction

Last month, a few folks on the Perl Porters list decided enough was enough. Casey West set out in search of a new mailing list for Perl beginners. Some concerns were raised regarding the validity of the list but, overall, there was acceptance. Out of the blue, Ask Bjoern Hansen came barreling through the crowd announcing that the list had been created – three days before. ;-)

It was time to find out if the Perl community needed a friendly, fire-free environment to foster growth and knowledge in the masses. It was time to find out if there were any masses. It was also time to find out if the Perl community would be willing to jump in and help. Don’t you just love the suspense? On with the show!


It has been one month and statistics speak for themselves. Thirteen hundred messages were sent last month, sending my mbox to more than 3.5 MB. As far as Perl lists are concerned, this is near the highest-trafficked list. Of course, the Python “Help Desk” list generates a solid 4000+ messages a month, with excellence.

Under normal circumstances, generating that much beginner traffic would cause the list to combust, sending fireballs as far as the eye can see. Not this time. Established folks in the Perl community have made an effort to put the gloves on and play nice. As list baby-sitter, I have only had to slap a handful of wrists, and the people attached to them have responded honorably. Nearly all questions have been answered at least once and every customer seems to be satisfied.


The beginners list recently split in two. The beginners-cgi list was created as a means to cut back on the amount of traffic. Many people were finding it hard to keep up with the flow of just one list. This is understandable considering we have over 1000 subscribers to the beginners list.


Ask and I started the daily-tips mailing list. This list will be sending our daily mailings with simple tips for beginners. The tips will cover a wide range of topics, in the form of ``Questions and Answer”. We won’t be mailing from the standard Perl FAQ, there’s already a list for that. Instead, we’ll be taking submissions from the community and mailing them (That means you!). More information on this list can be found at http://learn.perl.org/.


The beginners-workers mailing list is the place to send your daily-tips submissions, as well as your thoughts on how the Perl community should be helping beginners. Ask, Adam Turoff, Kevin Meltzer and I (and others) will be reading this list and responding if necessary. The Beginners Team is working hard on this list to get a number of initiatives rolling. Thanks to the people mentioned above, and many other folks for your continued help and support.


Another fine member of the Perl community, Kevin Lenzo, followed up the mailing list announcement with one of his own. He created an IRC channel named #perl-help on irc.rhizomatic.net and even attached the lovable purl bot to it. Kevin reports moderate and friendly traffic on this channel.

This is an exciting move, because it provides real-time results. The ability to interact with someone in real time makes this a complete win. Believe me, you won’t go away disappointed from this channel: the people there are fast and fun to work with.

Code Review BOF at the Perl Conference

Peter Scott and I have teamed up to make the second TPC Code Review bigger and better than ever. A number of the top Perl people have volunteered to review code, free of charge. The format will be similar to last years BOF. This is your opportunity to get advice from Perl’s best without having to pay their rates.

If you are attending this year’s TPC and you have some questions about your code, please stop by. It doesn’t matter what your question is, all subjects are open. We are putting an emphasis on answering beginners’ questions but, please, don’t hesitate to bring your latest regex engine patch for review, we have people who can do that, too.

Onward and Upward

The Perl community has had a taste of success with the beginners list and IRC channels. We will hopefully solidify our new found stance at the Perl Conference with the Code Review BOF. So what happens next? Are we finished? Not by a long shot.

Ask and I have begun work on http:, a modest site dedicated to helping people learn Perl. At the moment it is slightly bare, hosting only the beginners list FAQ, which is maintained by Kevin Meltzer. This is all about to change.

learn.perl.org will become a beginners documentation project. We are asking for contributions from the Perl community for tutorials. The topics of these tutorials may be broad, covering everything from text editors with Perl syntax highlighting to in-depth research on why one should use while to loop over files. We hope, with time, that learn.perl.org can mature into a central, community-lead documentation project: the Perl Documentation Project.

Pioneering the Status Quo Revolution

It has been the general opinion of the open-source community that, if you can’t find the answers yourself, you’re lost. Read the documentation, if there is no documentation, read the source. If there is no source, you’ve stepped out of the world as we know it. If you’re a greenhorn and you can’t figure it out from the docs or the source, goodbye. And not just goodbye, but a plague on your house as well.

This attitude is just not good enough any more. Frankly, it’s a terrible way to behave. Any child can play the “I’m not telling you, figure it out yourself” game, complete with fingers wiggling from the ears and a stuck out tongue. It’s time for us to collectively grow up. As a community, we need to mature. We need to get up and help each other.

I admit, I have been on the giving end of the flamethrower serveral times in the past. It seemed like a fun idea at first, but it really isn’t. After I sent flames, I felt terrible, often going back to the recipient and asking forgiveness. That’s just what it did to me, I hate to think about how it made the other guy feel. What kind of impression did I give him about me, about the Perl community, about open source? What we do in public really does reach that far: We are responsible for the people we represent, like it or not. So let’s all grow up and represent them well.

This reaches far beyond the walls of Perl ( no pun… ). I am beginning to see the awareness all around the open-source community. We are in need of a change and the challenge is here. The Perl community has begun its journey, let’s be the ones to carry it through the rest of open source, and beyond.

Closing Thoughts

My dream is for a Perl community that stands together with kindess and open arms. Many may feel this is a goal too lofty for us. I couldn’t disagree more. We have shown the world that we can do just about anything; this should be easy. I know I’m not the only one who shares this opinion.

“But, paradoxically, the way in which Perl helps you the most has almost nothing to do with Perl, and everything to do with the people who use Perl. Perl folks are, frankly, some of the most helpful folks on earth. If there’s a religious quality to the Perl movement, then this is at the heart of it. Larry wanted the Perl community to function like a little bit of heaven, and he seems to have gotten his wish, so far. Please do your part to keep it that way.” – Preface, Programming Perl 2nd Edition



Something wrong with this article? Help us out by opening an issue or pull request on GitHub