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


in reply to I want you to convince me to learn Perl

So, as Perl Monks, I want you to convince me that my logical side is wrong and I really should learn Perl.

Go Learn Python.

If it doesn't drive you nuts with its stupid rules you'll probably be happier there. But if it niggles and irritates you come on back.


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".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re: I want you to convince me to learn Perl

Replies are listed 'Best First'.
Re^2: I want you to convince me to learn Perl
by soonix (Canon) on Sep 25, 2013 at 08:04 UTC

    Go Learn Python

    well, I did so. In the argument "line noise vs. significant whitespace", I opted for the latter and did not rue it. Of course there's more differences than that, but also they have more things in common than some people say.

    So, why am I coming back to perl? Simple:

    1. Perlmonks - I am not disgusted by the Python community, but this one is superior, even if it should be run by benevolent dictators :-)
    2. CPAN

    Of course, given that I started with FORTRAN and COBOL, both Perl and Python are big improvements to the art of programming :-) and anyway I am using both (and some other languages, too).

      In the argument "line noise vs. significant whitespace", I opted for the latter

      It's not just the significant whitespace issue; though that is possibly the most frequently annoying. Other things I remember:

      • Scoping is weird.
      • Documentation is crap.
      • Library (dis)organisation.
      • colons; thus the lack of multiline anonymous subs.
      • The general lack of coherence.

      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".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        It's not just the significant whitespace issue; though that is possibly the most frequently annoying.

        I hear this way too often and I honestly don’t understand it.

        If you already indent correctly (go one unit deeper in a sub-block, one unit shallower when the block ends — and unit is whatever, be it a tab or several spaces, as long as it’s consistent), you won’t even notice the language relies on indentation.

        And I sure as hell hope you people indent properly in your non-python code too, already.


        That said, Python annoyed me with one thing that Perl — thankfully — doesn’t: run-time errors. Everything you can think of, is going to bite you during run. There’s no strict mode, no nothing to guard you against typos and such. Perl will very happily rattle its chains about stupid things that Python will remain completely oblivious about until you run into it while the code is in motion.

        yep, that's what I meant with "more differences than that". OTOH, wether something is annoying (and how much so), very often is influenced by what you have been using before, or what you are used to. E.g. I had seldom need for anonymous subs, so didn't miss multiline ones :-)
      The problem I had with Python was that there were plenty of places where, because everything is an object, I found a number of areas where things like integers were copied by reference rather than value. Maybe it's better now and maybe I wasn't doing things The One True Python Way, and it has been a few years, but I remember being really puzzled by that one.

        well, one of my first languages was Pascal, where you have to tell your subroutines whether they get their parameters by value or by reference. That possybly had made me more aware of this one.
        Which means, when I use sort, I have to pause thinking about whether it modifies in-place (Python) or returns a sorted copy (Perl)...

        Update:

        copied by reference
        is just plain wrong terminology. References are used to avoid copying.
        Don't even think in such terms! That impedes yourself, and then no wonder you're puzzled... regardless in which language you program.