Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

So, just what exactly is it about Perl?

by smullis (Pilgrim)
on Nov 09, 2004 at 22:23 UTC ( #406542=perlmeditation: print w/replies, xml ) Need Help??

Hey All!

Being a relative newcomer to the collected seekers of wisdom browsing this excellent site I ponder on exactly what is it that makes Perl have such a vibrant community and faithful following?

I see the same names lurking (is that the right word? ;-) around this site, offering suggestion, advice and other words of encouragement. It's really great!! I suppose this can only stem from the intrinsic qualities of the language itself. As I become more and more familiar with the subtleties and awsome flexibility of this great language - and more keenly aware every day of how much more there is to learn - I wonder if my feelings are shared by the rest of you...
From simple one-liners via the unbridled joy that is CPAN to Mr. Conways voyages into the wonderful world of OO there seems to be something for everyone.

I imagine there were a couple of prevalent points of entry for those of us here:

1. ksh / sh / bash just don't cut it anymore.

  • We're fed up of having to write to temp files (/tmp/$0.$$ anyone?) to be able to reference the results from within for loops later in our scripts.
  • Even when trying to compensate with bash builtins ( such as $(< $file) instead of cat and so on.) the performance is just not good enough.
    And sometimes... it matters.
  • Three (and a bit) words: no multi-dimensional arrays
  • "Data-structures? We don't need no steenkin' data-structures!" - Ummmm... Actually? We do.

2. Needed a prototyping lanuage? Blown away by the rapid development speed?

  • You'll have to help me here... This is not where I'm from...

Is there "a third way"?

And finally:

For the third morning in a row I woke up today after having a particularly strange Perl related dream (this one was about typeglobs).... this thing is getting to me!!

Should I seek professional help?



....still putting the Monk into Monkey....

PS. As some of you read this, sagely shaking your head and smiling to yourself at the burblings of a Perl adolescent, let me reassure you that I realised that I could be following the ever so typical profile of a newish Perl user ... "they alway post something like this at around Level 4".

Ah well. I'll post it anyway. ;-)

Replies are listed 'Best First'.
Re: So, just what exactly is it about Perl?
by TimToady (Parson) on Nov 10, 2004 at 07:11 UTC
    And you're asking these people if you should seek professional help... :-)

    I think that obviously the thing that draws people here is the freedom. Programming freedom, cultural freedom, and of course the freedom to go down ratholes without actually answer the OP.

    Anyway, hang in there. I came at it from both #1 and #2 myself. Five years ago a lot of people were coming at it from the CGI angle. These days a lot of folks come to Perl who are just trying to make sense of large chunks of bioinformation. Doubtless five years from now it'll be another angle of approach. Doesn't much matter, as long as we keep the Perl community a reasonably comfy place to live.

Re: So, just what exactly is it about Perl?
by Mutant (Priest) on Nov 10, 2004 at 09:59 UTC

    I think one of the reasons Perl has such a vibrant culture is that the basics are very easy to pickup (Hello World in Perl is about as simple as it gets, and you can do it on the command line!), but to master Perl takes a decade or more. I've been programming in Perl for about 4 years professionally, and about 4-5 years less professionally before that. But I doubt that I'm even half way to mastery.

    Learning Perl is almost like learning a martial art. It's a mix of art and science. And you also need good mentors. Being (by far) the most senior Perl developer in my company, reading and posting on PerlMonks gives me the guidance I lack in Real Life.

    Now I just need a RestOfMyLifeMonks :)

Re: So, just what exactly is it about Perl?
by monoxide (Beadle) on Nov 09, 2004 at 22:42 UTC
    The third way.
    Trying to learn a new language that at first sight is very poorly documented (no -- votes for this please... i have been using perl for a few months before finding this site, and learning how to use the docs properly)

    I personally love multi-dimensional arrays, i use them most days that i program. I also love how Perl implements "multi-dimensional arrays", arrays of arrays, or arrays of hashes, etc, etc. Very flexible and i wish a few more languages implemented this. (I believe that C# has this option?)

    Anyway, just a few more ramblings from another Perl newbie.
      Trying to learn a new language that at first sight is very poorly documented (no -- votes for this please... i have been using perl for a few months before finding this site, and learning how to use the docs properly)
      I'll refrain from downvoting you, but let me ask this: What makes it "poorly documented"? Did you not install the documentation that comes with it? Could you not figure out how to use it? And a more useful question, what would have improved your perception of the documentation?

      People always go on and on about php's wonderful documentation, and I just don't understand it. They don't even have a command line tool for access documentation do they? So what could be improved about perl's documentation? Surely not the quantity. Perhaps the quality? Or is it just too hard to use? Maybe it needs a better website?
        Probably the fact i didn't realise there was a command line tool for accessing the docs. I am used to having either text file, or .doc or decent online documentation/tutorials (damn windows users). But i know alot of people who don't want to learn perl because of a percieved lack of online documentation and tutorials and places for help. A few i have refered here, but i don't know if they have ever looked.
      Trying to learn a new language that at first sight is very poorly documented (no -- votes for this please... i have been using perl for a few months before finding this site, and learning how to use the docs properly)

      Perl is very well documented: but you may still find it confusing. Odds are, you're just not the intended audience. As the early manual pages stated, perl was written as an alternative for using UNIX shell tools and C, and that was, quite reaonably, the assumed background for the documentaton. The documentation assumed, (and to an extent, still does), that you already understood programming terms and concepts, and just want to try out this new language called perl.

      Perl is no longer very "new", and the audience for the documentation is no longer limited to ex-C and shell programmers, but the documentation has remained largely the same. If you want to re-write some of it for a new target audience, I'm sure it would be appreciated. Good documentation is valuable, because documentation is hard. You have to get all the details right, or the newcomers will learn the wrong things.

      I learned perl from the online documentation, and very much appreciated it. I was part of the target audience, so that worked well for me. At the time, I thought perl was much better documented than C, which is what I was using. I didn't know where to find a central list of all the C string handling functions that were available on my UNIX system, and I was getting frustrated with trying keyword searches on the word "string". Perl had everything documented on one page.

      You might want to try some of the other resources targeted at learning programming in general, or learning perl in specific. Perhaps a copy of the book "Learning Perl" would help, if you find that you learn well from books.

      perldoc -f <functioname> brings up help on a built-in perl function.

      Good luck, and keep learning!

      Ytrew Q. Uiop

      There is no better documented language than Perl. Ever read the M$ "docs" on C# - they're a joke.

      C# and most other languages have no notion of hashes (or any native multi-dimensional data structure) as a type. The problem being the way references are handled. In Perl a reference can be a reference to anything, while C#/Java require a reference to be a declared reference to a specified type. No, C# does not have this option. In C# there are primitive types and objects, that's it.

Re: So, just what exactly is it about Perl?
by mpeppler (Vicar) on Nov 10, 2004 at 16:46 UTC
    It seems to me that you're making the same sort of discoveries that I did some 14 years ago when I attended a presentation on perl by Rob Kolstad at the Software Development '90 conference in Oakland. As a C programmer having to write shell scripts this really blew me away, and the potential use that I could see for interacting with the databases that I was starting to use at the time was huge (cue "so I wrote sybperl" comment :-)

    I've never looked back... :-)


Re: So, just what exactly is it about Perl?
by wolfger (Deacon) on Nov 11, 2004 at 20:17 UTC
    For me, I just "get" Perl... Other, more rigidly structured, languages (Java, for example) just don't feel right to me. I like being able to turn an integer into a string just by changing the context in which it is used, and I love the fact that I don't have to declare it as being either one. I love the fact that there's always more than one way to do something, even in strict mode, with warnings enabled...
    As I learn more and more about Perl, I am increasingly falling into #2 slot as well. The speed with which I can develop programs, as a novice, is astounding.
    Lastly is my love of scripted languages. Having to recompile after every change is such a pain! Especially during the debug process.

    P.S. When I hit level 4, I didn't write this kind of post... But I wanted to. :-)

    Believe nothing, no matter where you read it, or who said it - even if I have said it - unless it agrees with your own reason and your own common sense.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://406542]
Approved by atcroft
Front-paged by grinder
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2017-04-23 06:25 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (430 votes). Check out past polls.