Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

As far as Perl coders go, I less-than-humbly suggest that I am one of the better Perl coders that you are likely to run across. Is this because I'm so good? No! It's because many Perl coders out there do not have much skill with the language or with coding in general.

Many people who use Perl for simple administrative tasks do not have the time, or the need, to learn Perl well. Others, thinking that dynamic Web sites are sexy or will get them a better job, come to Perl with no programming experience at all and pick up one of the many, many terrible books written on the subject.* It's hardly their fault that their Perl skills are not well-developed, but it does tend to make my code look better by comparison.

The reality is, if you put me up against people who really know Perl, my skill is "average" at best. I am a far cry from a guru. Many monks here have been quick to heap praise on me for the assistance I have given in various areas and I have seen some positive comments about me that make me blush, but I am not a guru.

So what's the point of all of this? Simple: when I screw up, call me on the carpet. If you have checked Saints in our Book and Number of Monks by Level, then you might have noticed that out of over 7,000 registered users, I am (as of this writing) ranked number 5 in terms of total XP. This is not because of my ability with Perl. This disparity between my ranking and my Perl skill has three reasons that I can think of:

  1. I've been here, posting regularly and prolifically, since June of 2000 (read some of my earlier posts if you really want a chuckle).
  2. I try very hard to help people, since others have tried very hard to help me. People appreciate that.
  3. I usually write well. In this area, I am fortunate and know that, if I take the time, I tend to excel.

Notice that nothing on the above list mentions any consummate skill with Perl. I think the above reasons are good, solid reasons for much of my XP -- contributing to Perlmonks is just as worthy of XP as being a Perl god, so don't feel bad if you, like me, aren't "up there" in terms of skill. Unfortunately, my "Sainthood" has raised an interesting problem. It's an annoying problem that I have discussed with other high-level monks and they have noticed the same problem: we often don't get the best feedback. I suspect that many people equate my XP with Perl experience and are unsure about the wisdom of correcting me.

The title "Stubborn as a Saint" refers to the fact that sometimes I get stuck in a particular way of looking at a problem and don't consider alternatives if my solution is working. In a perfect example in a recent reply, I posted the following snippet:

%author = map { /^\d{6}$/ ? $_ : [ split( /\|/, $_, 2 ) ] } map { split( /=/, $_, 2 ) } grep { /^\d{6}=[^|]+\|/ } <FH>;

Later, in the same post, I blathered: really seems to be the most straightforward "Perlish" way of writing that.

No, it's not. That was just my mind being stubborn and taking its "first option". Fortunately, in this case, btrott posted the following:

my %author; while (<FH>) { next unless /^\d{6}=[^|]+\|/; my($l, $r) = split /=/, $_, 2; $author{$l} = [ split /\|/, $r, 2 ]; }

Furthermore, MeowChow followed it up with an even cleaner example (sorry, btrott :-):

my %author; while (<FH>) { next unless /^(\d{6})=([^|]+?)\|(.*)/; $author{$1} = [ $2, $3 ]; }

runrig then followed up with the comment that there were issues with my example and /s?he/ would post benchmarks. That makes me very happy. I still want to improve my Perl and things like this just help me improve faster.

As I mentioned, I and other high-level monks have noticed that as we rise through the ranks, others seem to be less willing to be critical of our code. Please, feel free to speak up. Do you only have 3 XP? I don't care. I can still learn from you. Do you feel like all of your code is unworthy to line a canary cage but you are convinced that I'm being an idiot? Let me know! Forget my XP. All that reflects is my contribution to this site. I know I speak for myself, but I also know that I speak for at least a few others: don't be shy.


* There are some excellent books out there for Perl, but they usually assume a programming background.

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

In reply to Stubborn as a Saint by Ovid

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others musing on the Monastery: (6)
    As of 2018-06-20 15:55 GMT
    Find Nodes?
      Voting Booth?
      Should cpanminus be part of the standard Perl release?

      Results (116 votes). Check out past polls.