http://www.perlmonks.org?node_id=1007102

5plit_func has asked for the wisdom of the Perl Monks concerning the following question:

Hello, all perlmonks ill say im pretty new on this site but have been learning Perl for the last few years having long breaks in between which makes me feel like i have not learn't any thing about the language. What i am in search of is a practical learn approach to mastering perl and other technologies i wish to learn. any one with such answers should kindly point me in the right direction. many thanks in advance.

Replies are listed 'Best First'.
Re: What is the best way to master perl
by blue_cowdawg (Monsignor) on Dec 04, 2012 at 15:32 UTC
        What i am in search of is a practical learn approach to mastering perl

    The real question is "What is the best way to learn programming in insert language here."

    Hear (or reading) that question reminds me of an old joke:
    Son:How do you get to Carnegie Hall, Dad?
    Father:Practice son, lots of practice.

    To my way of thinking languages are just syntax. Programming discipline is more important to me at least than syntax.

    Regardless of the programming language the best way to master it as space_monk points out is to spend lots of time writing code. Learning programming technique independent of the language and applying those techniques to the language at hand requires practice. And lots of it.

    I've been writing scripts and web applications in Perl since 1989. During that time period I've also been writing in FORTRAN, C, C++, Rocky Mountain Basic, X86 Assembler, Pascal, MC68xxx assembler, Java, JavaScript and I'm sure I've forgotten some languages. Once you have the basic techniques down you can write any application in any language. Some languages just make it easier to write certain applications. One one hand I'd hate to write a device driver in Perl (it can be done!) and on the other hand I'd hate to have to write a parser in assembly language.

    I'm currently writing software to perform temperature regulation of a mash tun during grain mashing to make beer. It's being written in C++ against an Arduino embedded processor. I chose the Arduino because of the built in "sensors" that make my life easier as well as the fact there is a lot of public domain stuff out there to do what I need so I don't have to reinvent the wheel. Sort of analogous to CPAN.

    Happy programming!


    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
      What is wrong with writing a device driver in Perl other than performance?

        Never said it wasn't possible. But to stretch an analogy I could probably put a screw into a board with some measure of success with a hammer clearly there are better tools designed for the job. I do remember in a McGiver style situation using a hammer and nail to "drill" a pilot hole for a screw, but I'd rather not do that on a normal basis.


        Peter L. Berghold -- Unix Professional
        Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg

        A trip down memory lane here:

        Closest I ever came to writing a driver in Perl was a while back when I used to use a EPROM burner that I got for free that didn't have the user software to go with it. I obtained a photocopy-of-a-photocopy-of-a-... you get the idea of the user's manual and it had the command protocol documented in its appendix.

        I wrote a UI of my own using Perl running on top of a pre-cursor to Cygwin on DOS and wrote a XS module to actually talk to the serial port on the burner. The Perl program used the XS module for the low level stuff passing commands and data to the XS module's methods and happily burning on to the EPROMs or dumping them or whatever I needed.

        Don't really use EPROMs any more and I gave the burner away along with the XT that I used to drive it. Getting XS to work was an education to say the least.


        Peter L. Berghold -- Unix Professional
        Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg

        You said "other than performance". Those are the magic words that govern the operation of most device drivers.

        Within reason, no-one cares if your Perl program takes a couple of extra seconds to generate that report/parse that text document, but if your device driver is making the rest of the system slow and unusable, noone is gonna be happy

        A Monk aims to give answers to those who have none, and to learn from those who know more.
Re: What is the best way to master perl
by eyepopslikeamosquito (Archbishop) on Dec 04, 2012 at 19:41 UTC
Re: What is the best way to master perl
by space_monk (Chaplain) on Dec 04, 2012 at 15:08 UTC

    Write lots of it and use any spare time and breaks browsing sites like this one to see how other people approach problems.

    Update/More
    I'm an IT contractor, and I do short term contracts in a number of different languages. The good side of this is that I have a wide ranging skillset, keeping me employed, the bad side is that I never really get to be a "guru" in any one particular area.

    For Perl, I've found PerlMonks is a useful way of keeping my hand in, and also seeing that other people solve problems in a different way from the way I would do it introduces me to novel concepts and the flexibility of the language. A skill left unused atrophies, so sites like this one are a great way to stay fresh.

    A Monk aims to give answers to those who have none, and to learn from those who know more.
      There's more than one way to do it, It depends on what problems you are trying to solve, probably.
Re: What is the best way to master perl
by sundialsvc4 (Abbot) on Dec 04, 2012 at 16:54 UTC

    I like to learn languages by example.   “Use The Source, Luke!”   And you can find plenty of source just by looking through the CPAN package libraries that are already installed on your computer.

    The discipline of writing software is very much a thing that is learned by doing.   Over the course of several years it will actually become language-agnostic:   you will see the common threads among every language that you have ever used.   (I find myself to be a student of languages, genuinely fascinated by their role as tools for solving problems, and the author of more than one.)   But I also genuinely enjoy to this day the work that I do ... making “a very stupid, albeit very fast machine” do useful things for people.   I still find that to be challenging and engaging.

Re: What is the best way to master perl (do your homework)
by Anonymous Monk on Dec 05, 2012 at 04:42 UTC
Re: What is the best way to master perl
by Athanasius (Archbishop) on Dec 04, 2012 at 16:47 UTC

    Hello 5plit_func, and welcome to the Monastery!

    Two additional suggestions:

    Hope that helps,

    Athanasius <°(((><contra mundum

Re: What is the best way to master perl
by grondilu (Friar) on Dec 04, 2012 at 19:21 UTC

    Years ago I discovered Perl and I was fascinated enough to decide I had to learn it. So I printed all the manual pages and started reading them. The problem was that I did not own any computer at this time. So my method of learning was purely theoretical: it only consisted in reading books.

    I can tell you this method did not work. After a few months, I forgot most of what I thought I learnt. Later I also had to learn stupid things such as MS languages and other proprietary stuff. All very boring and tedious work/studies activities that distracted me away from interesting programming languages.

    It's only years later, quite recently actually, when I had my own computer with a free and open source operating system, and also when I had lots of free time and an internet connection, that I could "re-discover" perl and really start to learn it.

    Only then I could seriously start to learn it (and I still have much to learn). The difference was that I then had personal computing projects, stuff I could test my knowledge on.

    So I think that to learn a programming language, you must find a balance between theory and practice. Reading documentation is as important as doing some actual coding, preferably on a project you feel passionate about (it's better for motivation).

    I don't think I could tell anything else about this subject. I hope it'll be useful.

Re: What is the best way to master perl
by aitap (Curate) on Dec 04, 2012 at 16:15 UTC
    http://learn.perl.org contains links to all books you'll need. Start with installing Perl, then read perldoc perlintro, then run some examples. Imagine a real task and try to solve it in Perl. Repeat until you reach enlightenment :)
    Sorry if my advice was wrong.