Perl Mongers Camel
Channels / EFNet #Perl
discussion for more advanced programmers


Description (top)

EFNet #Perl is a long-standing Perl discussion channel. The channel is intended primarily for intermediate to advanced level Perl programmers. Because of this fact it has gotten somewhat of a reputation. While you can certainly get help if you ask an intelligent question, if it's obvious you have neglected to read the documentation you most likely will be dealt with in a rather terse, and possibly harsh, manner. You will first be pointed to the documentation; usually it will be a specific documentation reference, so you will not be totally lost. If you continue to display a lack of ability to first read and research on your own it is most likely you will be devoiced or banned.

While that certainly sounds daunting, it is possible to get along well with the other members of the channel, and to get your questions answered intelligently and easily. It just takes more effort on your part to follow up and read carefully.

Discussion in the channel is not restricted to Perl. While it is generally not acceptable to ask off-topic questions, quite often discussion will tend not towards Perl but a wide range of other topics. Many of the regulars have been in #Perl for a long time and enjoy chatting with each other.

Rules (top)

#Perl is certainly not short on rules. Many of the rules are designed to keep newbies and off-topic questions out. Others are intended to make it easier to communicate when you do have a legitimate question. An alternate description of the rules can be found at the original #Perl page.

  • Read the available documentation.
  • Speak normal English.
  • Do not paste.
  • Do no cross-post.
  • Do not use color or special markup.
  • Do not ask web or CGI questions.
  • Do not send automatic noise messages.

  • Read the available documentation. (top, rules)

    Read all of the relevant documentation that you have available to you before asking a question. If your question is about how to find the documentation itself that's fine. Usually if you ask a question that has a documented answer you will be pointed to that documentation. If, however, it becomes obvious that you're not reading you may be dealt with more harshly.

  • Speak normal English. (top, rules)

    K3wlt0k, l33t speak, txting, hyperreductionism, whatever you like to call it, don't use it here. This includes replacing letters with numbers (4 for a, 0 for o), using non-word abbreviations ("ne1" for "anyone", "u" for "you", "ur" for "you're", etc.). Your grammer and punctuation don't need to be perfect; you don't need to start each sentence with a capital and end with a punctuation mark. However, you do need to make an effort to use full words.

    The purpose of this rule is to aid in communication. If you want your question answered or your problem resolved the people you're asking need to be able to understand you. It is especially difficult for some non-native English speakers to understand these types of abbreviations. While many others may be familiar with them, it nevertheless takes effort to translate. Your question may very well be misunderstood or completely ignored.

  • Do not paste. (top, rules)

    Do not paste large amounts of text to channel. This should be a common-sense rule, and a matter of normal IRC etiquette. The rule is designed primarily to prevent channel flooding. There are quite often paste bots around that you can use to show your code. This rule is also here to allow the people helping you to easily refer back to the text in question without having to scroll back and forth in the IRC window.

  • Do no cross-post. (top, rules)

    Cross-posting is when you post the same question to multiple channels simultaneously. The idea is to get the question answered by as many people as fast as possible; what it really does is waste the time, energy, and patience of the very people that are trying to help.

    When the same question is posted to multiple channels what usually happens is each channel begins responding. They ask questions to clarify the problem, and offer solutions that may or may not be appropriate. The problem is each channel is doing this, without being aware that another channel is doing the same thing. Answers and questions overlap between channels, and generally you will be unable to respond to everything.

    If you are not getting a response from the channel, by all means, post your question to another. However, provide some opportunity to answer; 10 to 15 minutes is not an unreasonable amount of time to wait.

  • Do not use color or special markup. (top, rules)

    Some IRC clients, most notably those available for Windows, allow you to markup your text so that it looks different; this can include adding color, bold, underlines, and overstrikes. Do not use these features. Not everyone will be using the same IRC client you're using, and therefore may see random garbage in what you say. Others may be using clients that fully understand the markup your client is using, but do not appreciate having what they consider unimportant text highlighted for them.

  • Do not ask web or CGI questions. (top, rules)

    This rule, more than any other, tends to trip people up the most. As with most of the rules, no one notices this one (it's usually in the topic) until after they've asked their question and have been told several times that it's not allowed. Quite often at that point the person questions why they can't ask about the web, assuming they haven't already been devoiced or banned.

    There is a notable exception to this rule that bears mentioning: intelligent mod_perl questions are usually acceptable. Be careful when asking such a question though; if you're told "no web" then just stop and try elsewhere.

    The primary reason web questions aren't allowed is simply because everyone (everyone being those who make the rules) is really tired of dealing with the web. Most of the channel regulars have to deal with the web as a normal course of their job, or they have personal web sites, etc. While this probably makes them ideal people to ask intelligent web questions of, it makes the topic really very boring.

    Another reason high on the list is the fact that the large majority of questions that are asked in #Perl actually have nothing whatsoever to do with Perl. Certainly most of the time the programmer is using Perl to solve his problem, but the question asked is either a web server configuration issue, or a misunderstanding of how the various standards (HTML, HTTP, CGI, etc.) work.

    Tom Christiansen (thoth on IRC) has a rant that sums up the general sentiment, though the tone may be harsher than many of the regulars would use.

    The best thing to do when you have a web question is to try a different channel. EFNet #Perlhelp, Freenode #Perl, #cgi, #cgihelp, #www, and #apache are all alternative channels you can try.

    You can try rephrasing your question to remove all reference to the web. As the page suggests, this can be a good way to narrow down precisely where your problem lies. However, more often than not you are just removing relevant facts that make it even harder to debug your problem, and usually it will become obvious that you're hiding something. At that point the response can be harsh, depending on how much time you've spent, and who you're talking to.

  • Do not send automatic noise messages. (top, rules)

    This includes automatic away or back messages, messages indicating what song you're currently listening to, and messages giving thanks for "+v". This also includes automatic messages that you trigger manually, such as if you type "/away". This type of message does nothing but clutter the channel with useless information. If someone were really interested they would simply ask you.

Bots (top)

  • purl - infobot
  • knowpaced - paste bot
  • buubot - factoid and eval bot

  • purl (top, bots)

    This is one of the original infobots. She (that's right, she has a gender, shut up) has been hanging out in EFNet #Perl for a long time, so she's collected quite an attitude. Quite often she'll interject in the middle of a conversation; sometimes it'll be funny, sometimes scarily appropriate, sometimes off the wall, and sometimes it will make no sense whatsoever.

    The repurl project intends to replace this very bot. Currently purl is only on EFNet, but once she gets replaced she will probably show up on several others.

    The purl you see on MagNet #Perl is actually not the same bot, it's not even based on the same code. See MagNet #Perl's page for more information on that purl.

  • knowpaced (top, bots)

    This is a paste bot provided by the #Perl Mongers. It currently resides on two networks; the EFNet page is here, and the Freenode page is here. It is in many channels so be sure to select the appropriate channel when you submit a paste.

    If you would like us to provide knowpaced for your channel feel free to contact us about it.

  • buubot (top, bots)

    Buubot is a factoid and eval bot being developed by buu. While it can be useful for its factoid abilities, the most useful feature is its ability to eval code provided to it. Simply give it some code in channel prefixed by "eval:" and it will run the code and display it back in channel. It also responds to /msg, and hangs out in #buubot.

    For example:
    <Somni> eval: @x = qw(1 2 3); join(" ", @x);
    <buubot> Somni: 1 2 3

    While the eval feature is certainly fun, please don't abuse it in channel. If you wish to show someone in channel some code you are working on, either to describe a problem or solution, or show off something clever, that's fine. If you wish to just test the bot, or test code, please use /msg or #buubot.

The use of a camel image in association with Perl is a trademark of O'Reilly & Associates, Inc. Used with permission.