Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

How has Perl affected you?

by stevieb (Abbot)
on Aug 12, 2017 at 20:58 UTC ( #1197319=perlmeditation: print w/replies, xml ) Need Help??

Slow weekend afternoon, taking a break from packing up my life and doing a huge shift towards an entirely new adventure.

I ran into Perl through my first non-contract job. I picked up an ISP that was barely more than a start-up, and with a book off of a shelf, I fell in love (Perl 4/early 5 days).

Over the years, (but with 20/20 hindsight it started not long after I had to pick up Perl) I have come to appreciate the Perl community as a group who are loyal, dedicated and serious, all the while being able to take criticism quite well.

I savored the day I became a Friar; it allowed me to take part in some decision making on this site, which imho is the de-facto place to find Perl experts.

Since the first day I picked up that "Learn Perl in 21 Days" book, I've gone on to do a lot of interesting things, meet a lot of interesting people, learned more than what I've been able to share, and help a lot of people in this language (and thanks to it, other ones as well).

I'm coming up on my 8th birthday here, so while taking a breather from the physical duties of life, thought I'd once again share my appreciation for Perlmonks, and ask you, newbie or not, why you are invested in Perl, what it has done for you, and whether it has changed anything regarding how you approach other tasks/problems in your day-to-day.


Replies are listed 'Best First'.
Re: How has Perl affected you?
by BrowserUk (Pope) on Aug 12, 2017 at 21:55 UTC

    I'm nearing the end of my adventure with Perl, my field has taken a turn in direction and Perl hasn't kept up, but it remains my go-to prototyping language and my all-time favourite.

    Perl taught me (at least) 3 things:

    1. Source code is king; but the programmer is king maker.

      And clearly laid out, concise --even when highly complex and idiomatic -- code, is -- assuming a willingness to achieve good familiarity with the language -- far easier to read, understand, modify and maintain than verbose, prosaic, generic code that avoids idioms and specialties in an attempt to "be readable at first glance". And, with a modicum of effort, it takes less time to produce, runs faster and contains less bugs.

    2. Understanding and using the full power and nuance of the language can save 80+% of the kloc to perform a given task; and 90+% of the time you wait for the results.

      Think about that! That means it takes 1/5th the time to write and runs in 1/10th time.

      Those are numbers that make learning the language -- rather than writing COBOL, Pascal, or C in Perl, well worth the effort.

      None of the other 10+ languages I've become competent in, nor any of the other 20+ I've explored, has taught me so much, nor enabled me so well. A big part of that is the concise thoroughness of the documentation. (Almost) Anything you need to know about Perl is defined and catalogued in the documentation. It may take several readings to find it; and two or three more times to recognise it, but most everything you need to know is there. Even the hairy dark corners.

    3. Code that runs clean (strict & warnings), but is functionally incomplete, is worth more than any amount of code, no matter how theoretically, functionally complete it purports to be, that doesn't run, and run clean.

    Perl (5) is pretty much complete. Despite a world that wants to orthogonalize everything, banish special cases, objectify and box everything into a corner, and thus reduce the role of the coder to that of a billion monkeys tapping on typewriters; Perl demonstrates that generality costs: that concentrating effort in those areas that are used -- even at the cost of the loss of orthogonality and generality -- pays dividends over and over.

    There is no point in having every operator handle every possible combination of parameters, if 90% of those combinations are never used.

    Perl5's design and implementation recognises that simple fact and expends the effort where it is most effective. And much -- most, if not all -- of that is down to the pragmatism over vision of the original designer. L.Wall, I salute you!

    (Just a shame you got side tracked.)

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
    In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit

      Thanks BrowserUk,

      Perl was my "gateway" language so to speak, but during my early, core years of the tech 'revolution', that's what was prevalent. I dove in because I wanted to become a better sysadmin, and further, I wanted a way to better automation to a slew of routers/switches, and Perl, which is all I knew (at a basic level) was the way forward.

      Sometime in the mid 2ks, I found Mark Jason-Dominus' Higher Order Perl. I was still kind of struggling with references at this time. I printed the whole book off (it's free!) on single-sided paper, took it home, and re-re-read all of it. That was at a time in my life that was tumultuous on the 'life' side to say the least. What it did was show me that there's a bit more to this, and all languages that can be exploited beyond what one runs across.

      Now, I am exceptionally fluent in Perl and Python, can write and read most C/C++, code in C# without difficulty and have been forced to quickly understand and write in languages that are custom (when I first learned Perl, I never imagined corps could have custom langs), and what is one of the most important things, it helped me understand APIs.

      It's taught me that one can tell an API by its smell even. Being able to write in a language and just 'get' the declaration was pretty big for me. That said, it's brought along the expectation that an API author ought to have quality documentation for it and promptly update it when its recognized or pointed out that 'code don't match docs'.

      Last but not least, Perl has also taught me that languages that don't have an as easy-to-implement unit test platform,... suck.

Re: How has Perl affected you?
by zentara (Archbishop) on Aug 12, 2017 at 22:26 UTC
    Ever since the Rexx days of OS2, I was looking for that perfect, easy to use, intuitive interface to my computer and the internet. Rexx died but along came Perl. I will think like a Perl5'er until I die, because Perl5 hits the nail right on the head, when it comes to making file processing, running programs, etc etc possible, because it has correct intuition in how to think like a computer running C. If I live long enough, I will be in the old Perl5'er's survivor's group, still answering questions on something I'm still familiar with.

    My only lament, is that Perl5 and all the associated cpan stuff is not available on Android. :-(

    I just think of the apps I could make with a simple Tk interface and network access.

    But that is the greatest thing Perl has probably taught me, is that the computer industry is about making money and controlling all the software out there. Perl's TIMTOWTDI approach, dosn't sit well with their controlling nature.

    And even with all the ballywho over how much easier Python is than Perl, I tried python and it's a bloody mess. Version 2.7 or 3.4 or 3.7 ..... oops your package manager dosn't match the Python version etc etc etc.

    Perl just works. If you find the way. Like they say: It's the swiss army knife of computer toolkits.

    I'm not really a human, but I play one on earth. ..... an animated JAPH
      My only lament, is that Perl5 and all the associated cpan stuff is not available on Android. :-(

      Of course it is. Just now I am running good ol' OpenWindows olvwm (SunOS-4.1.3) on my android device (an "old" Samsung Galaxy GT-I9300). Funny thing. Of course, xterm and shells and what not are also running, and so does perl and Tk. For now that is just done using the XSDL apk, which provides an X server. On my rooted Samsung S3, I unpacked a raspian distro into /data/root, mounted thereto as appropriate (/proc /sys /dev /dev/pts) and hey presto! my phone is a usable computer after chroot /data/root /bin/bash

      Of course that is just the beginning. Next step is to interface androids shared libraries, interface SurfaceFlinger as a first step, and then scrape all that Java stuff off my phone. I want it back! I've bought that device. I want to use it as it suits me, not as it suits the vendor/app-developer/no-such-agency and whatnot.

      Work in progress. A soon as I have a good recipe, I'll post that here on PerlMonks.

      perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
        Yes! I'm so glad you are doing that. I'm looking forward to your post.

        I'm not really a human, but I play one on earth. ..... an animated JAPH
      But that is the greatest thing Perl has probably taught me, is that the computer industry is about making money and controlling all the software out there. Perl's TIMTOWTDI approach, dosn't sit well with their controlling nature.

      I've read this reply, and BrowserUk's as well, and I was going to hold off replying to any for a few days until more feedback was generated. However, this bit me. I totally agree, and this is a huge one for me. Perl and its community had me learn the value of "sharing", and unless I'm restricted by licenses that I have to incorporate because I've used/included someone elses code, 100% of what I write is Open Source.

      I've always been a firm believer that knowledge should be freely shared and available, so when I came across this community, I felt that things fell right in place.

      So that's another thing it's done for me; opened my eyes to the fact that I wasn't the only one who loved learning from others while wanting to give out everything I was experienced/knowledgeable with.

        Wow, I missed this thread when it came out and I am answering late, but what a great post! And also what a great thread, by the way. Thank you stevieb for initiating this discussion, and also many thanks to the others monks who contributed.

        I've always been a firm believer that knowledge should be freely shared and available
        I could not agree more.
        I wasn't the only one who loved learning from others while wanting to give out everything I was experienced/knowledgeable with.
        No, you're definitely not the only one, far from that.

        And I definitely count myself along those other ones sharing the same values. This is the reason, for example, why I wanted that my Perl 6 book be freely available on the Internet, and, moreover, open source with a very open Creative Commons license enabling people to copy it, modify it, and publish the modified version, if they want, despite the fact that it was being commercially published by O'Reilly.

        Thank you, stevieb, for these posts.

Re: How has Perl affected you?
by rspishock (Monk) on Aug 15, 2017 at 14:03 UTC

    Despite taking several programming courses in high school and undergrad, I was never able to fully grasp the concept of programming. Sure, I understood many of the more basic concepts, but being able to sit down and write something that did more than print out some text or take in input from the user.

    During my last semester of undergrad, I had to complete a senior project which covered all of the concepts of my major, one of which was programming. Fortunately, we were able to use any language, as long as it met the requirements for the project. After stumbling across Perl, I decided to give it a try. The first book I bought was Perl Scripting for Windows Security but quickly realized that while it aligned perfectly with my project, it was too advanced based off of my level of experience. Then I bought Beginning Perl, and immediately it started to click. I eventually moved on to writing more advanced code, more advanced for me at least, and was able to utilize Perl in my career as a security engineer, writing scripts to automate some of the testing procedures that my team used on a regular basis. This ultimately led to the team improving our productivity since we no longer had to babysit our tools. As I was the only person on the team the knew Perl, I became the go to person if someone wanted to know if/how to do something using Perl. This is something that to this day, about five years later, my former coworkers have discussed with me on occasion.

    Unfortunately, due to a change in positions, and a need to work with Python, I haven't been able to work with Perl in several years. I will still pull out old code and made adjustments based off of things I've learned. I've found the resources and openness of other members in the community to be a valuable resource along the way.

      Thanks rspishock,

      I too left a job (a 10 year job that had me dabbling with Perl) quite a few years ago. I promptly left the language, but a couple of years later came back to it despite it not being required.

      Step forward more years, and now I do Python coding as about 30% of my job. I stuck with Perl though, particularly because I like the people in the community, and the feedback I get on the code I write (as is the Perl way, I can tend to be lazy, so I utilize Perl experts to help me with code in other languages that might even just barely relate to Perl ;)

      Now, I have absolutely no professional ties to Perl in any which way, but I do maintain a decent list of CPAN distributions while patching others, solely so I can remain knowledgeable enough to hang around here while providing something back to the community that imho got my career started (even though I'm literally not a programmer by trade).

      I've learned recently that there are others like you and I that are 'out of the game' but are still hanging around, and that gives me a pleasant feeling.

Re: How has Perl affected you?
by johngg (Abbot) on Aug 19, 2017 at 20:47 UTC

    I first came across Perl in a Dr Dobbs article. I was looking after a bunch of Sun workstations and servers at the time and was writing a lot of C-shell scripts for admin tasks. It looked from the article like Perl might be a more powerful tool (this was before it shipped with the o/s) so I installed 4.036 from a Sun User Group CD-ROM and started playing.

    My background was as a Fortran/Cobol programmer on ICL 1900 systems who'd moved into a sysadmin role on Perkin-Elmer then Pr1me minis before we got our first SPARCstation 1s, at which point I started dabbling in C. As you might expect, at first I was writing C programs in Perl but as my familiarity with Perl idioms grew I became far more productive and also willing to tackle more complex problems. Perl brought a huge amount of enjoyment into the job, writing code was fun and the ease with which results could be delivered was amazing.

    Perl is the only language that has, several times, had me laughing out loud when I discovered how simple a task was that would have taken dozens of lines in another language!



      Perl is the only language that has, several times, had me laughing out loud when I discovered how simple a task was that would have taken dozens of lines in another language!

      Conversely, Perl is the only language that has me laughing out loud when I discovered that so many other languages make things so obtuse and difficult relative to Perl ;)

Re: How has Perl affected you?
by shmem (Chancellor) on Aug 26, 2017 at 01:09 UTC

    May this thread live as long as Name Space.


    Perl prevented me from being a bad architect (or an architectural slave in some office) and made me into a lousy programmer instead. I have no formal CS education.

    Long version

    Back in the late 80's as I studied architecture/urbanism, a CAD system consisting of workstation and software, peripherals and plotter easily cost about 75k$-100k$, which wasn't anything a student or architecture freshman could afford; we were designing on drawing boards. So a bunch of students, at the incentive of the unforgotten (for me, at least) Horst Rittel took on the task to develop a CAD system for architecture on the Atari ST. It was programmed in GFA Basic and was a 3d wireframe program. After playing around some time, I noticed some bugs and got the sources. Had no idea of programming, but ever since being a toddler I wanted to know how things work. Fixed some; got the idea of extending the wireframe model with surfaces defined by their edges, and there I went, reading "Computer Graphics" and spending days at the Atari, implementing a lousy hidden line algorithm (yeah, normal vector to an arbitrary perforation point onto a surface whose edges aren't aligned on a plane and such).

    Task completed, I submitted the work to Rittels institute at the faculty. Got some points and was hired: document and administer the CAD lab of the institute, some Suns (1,2,IPC,IPX, later SparcStations 10).

    First time at a UNIX system, had no idea. Spent days and nights reading manual pages, following SEE ALSO. After some time, things fell into place.

    At the institute, we spent a lot of time handling complaints of angry students which walked up to the office telling us over and over again that they had worked hours on their project, only to find out that they couldn't save their work, even without being over quota hard limit. We had a SPARCserver 300 with 16MB RAM sitting in a dark corner, which held the NIS/NFS tables, but too little disk space. So, the workstation disks also were used to hold user's home directories, which were transparently automounted to any other workstation as needed.

    Disk space was terribly expensive at that time, and so the disks were over-commited (wrt to quota hard limit). We needed some monitoring, and a cleanup tool to free abandoned scratch areas, which could be huge (for some value of huge of that time).

    Sweating over data collection and fiddling with sed, awk, cut, tr and whatnot (all in the dratted C-shell) a coworker noticed, walked up to me and asked me "did you hear of perl? that could be something for you."

    Gophered the stuff, compiled it and had it working. Wow. This was perl4, patchlevel 36 (patchlevel 19 on the Atari).

    Once I got a grasp on it, gathering and munging data was easy enough. But what about cleanup? The proactive part of the task... I wrote a perl script which mimicked a tcsh, complete with tab completion (was the GNU readline library out yet? Can't remember, since I didn't know at that time) and whatnot, which had a restricted set of commands: ls, cd, tar, gzip, mv, rm, and some. Running per cron as root, it would install itself as the infringing user's shell and persist, until the user had cleaned up his crap. Cleanup had to be done by the user themself, since we had no way to tell what of the users crap could be deleted, except the obvious stuff.

    Since then I'm hooked on perl.

    Later, one of the instructors of the institute walked up to me. He had a small startup, and looked for people helping at a contract: reorganize a workshop of architects, replacing a Siemens Quattro against a HP-UX workstation network and porting software from the former to UNIX/X11, converting all databases. "Why not?" I asked myself, instead of not negating and just asking "Why?".

    The office software was applix, and since there was no database decision (that was dependant of the decision of their CAD/AVA supplier), I wrote the database engine in perl, using Berkeley DB and interfacing applix. Being at holidays in Ireland, an emergency call came in: a bug! Wrote the patch by hand, submitted via fax. They typed it in, issue fixed.

    And then more things happened. Perl didn't teach me programming, but it enabled me to teach me programming.

    Yes, I learned more languages since then, but none which gives me more leverage.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
Re: How has Perl affected you?
by talexb (Canon) on Aug 31, 2017 at 14:59 UTC

    As at least one other monk mentioned -- I'm not sure how I missed this thread when it came out. My experience before Perl was using awk to replace the throwaway C programs I was writing to mangle files. I also did some REXX on OS/2 to do some batch processing .. I still smile when I remember an IBM Technical fellow giving a seminar on REXX and describing how the input parameters were read from the command line by the obvious syntax 'parse pull'. (With tongue firmly in cheek.) :)

    Around that time, I changed jobs, moving from a secure, but underpaid permanent position to a less secure, but better paid contract. When I came across a problem that needed some programming, I decided to use Perl instead of trying to fiddle around with a C compiler on the Windows platform I was currently on -- and my code worked brilliantly, which was terrific. That led to a little bit of code for a friend, which led to a contract that filled out my time when the original contract finished up.

    That was all twenty years ago, and somehow, working in Perl has paid my salary since then. That's pretty amazing. Oh, and it was the December 2001 pair Networks newsletter with an interview with Damian Conway that pointed me to this on-line community, where my education in Perl truly began. I feel pretty lucky to have ended up here.

    Alex / talexb / Toronto

    Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.

Re: How has Perl affected you?
by Discipulus (Monsignor) on Sep 05, 2017 at 10:25 UTC
    Hello stevieb,

    first of all my best wishes for your new life.

    > why you are invested in Perl, what it has done for you, and whether it has changed anything regarding how you approach other tasks/problems in your day-to-day.

    I have an humanistic formation and inclination: at university I studied ancient latin and middle age history.

    My first and only approach with a computer before the new millennium was with my father's 286 running DOS 6 (if i recall correctly): being a writer he understood how much a word processor (WordStar 5.5) could have been better than an Olivetti Lettera 35.. I looked at the manual and I was astonished! Everything looked messy and clumsy (and it was!)

    I planned for me an university carreer in middle age history until I realized that in eataly (yes Eataly!) professors were 60+ and their assistents were 50+ and I started to work, mostly manual jobs here and there.

    In 1999 I partecipated to a little group in the aim to realize a little network of PCs, second hand, refurbished ones, running Linux RedHat 5.2 if I recall. A friend of mines, Moussa from Senegal, teached me how to assembly a PC with ATX motherboard: he still works in informatics, I still mess with hardware at work.

    An expert, a young guy named Daniele, teached us the basisc of system administration and the basics of networking and the project was a success: a bounce of PC connected to a main one were able to browse internet through a 56Kb modem that hooked on phoneline at 20Kb.

    The last day Daniele gave us some printed copies of Introduzione al Perl (1996) saying something like: "if you have time and will to learn more I suggest you to learn a bit of Perl: it is a powerful language with many possibilty" TADA!! Shall the compiler be always with you Daniele!!

    I read the tutorial, it made sense. I started playing with Perl during an hot and solitary summer. After some tries and errors I programmed the main PC of the above network to automatically add and configure iptables for new PC of the network. This is shortly referred in my homenode too.

    While manual working for a little ISP (~20 peoples) I was hired by that ISP as young system administrator. It was 2002. Main task were on Windows operating systems WINNT and Windows2000. I started to automate as much as possible using Perl. I joined perlmonks the same year.

    Then came the hard moment: Murder of a Perl coder (announced). But at the end everything changed to remain the same (*) and I was leaved in peace with my sysadmin tasks and I used Perl again after a brief stop.

    So I started to look to every IT problem with Perl eyes, because everything seemed possible to do with it: I started some web interfaces at work, I automated all my original job of website activation and handling (Perl ADSI interface to IIS), and I started some GUI projects with Perl/Tk. Everything looked challenging and fun: everything worked fine since first draft and room for improvements were easy to spot.

    Since 2010 I had Perl rebirth with many more meat coming on the fire of learning. So I arrived to Ten (years) Here a big period of life with this community. Some external interest were so traduced into Perl project like Tartaglia's triangle and its Tk interface Tk Tartaglia's triangle fun - Pascal's triangle fun.

    At this point Perl already was a mix of a work tool, a fun game of challenging, a mania and a sparetime occupation. I started playing with oneliners at night, as others watch tv or do sudoku.

    Finally we arrive at the present and Perl and perlmonks are now a red thread in my life but more than the language itself is the community here that stimulates my brain more and more: following your post, monks, i discover new universes each day and even if my Perl is still basic, I now where to search and where to get inspiration to do something in the rigth way with Perl.


    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
Re: How has Perl affected you?
by Your Mother (Chancellor) on Aug 25, 2017 at 23:10 UTC

    Oh, fine! Ive written a lot about this over the years here and other places; versions of the same story in general. Instead of that, this time Ill switch it up and say something new

    Perl made me rich.

      Heh. Did I ever tell you that I love Your Mother? :)

      Perl made me rich too, but only in ways that most of today's society wouldn't recognize as anything of value, where the reality is, there's not anything more valuable.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2017-10-21 03:10 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (269 votes). Check out past polls.