

Can One Write Readable and Maintainable Perl? - szabgab
http://programming.oreilly.com/2013/12/can-one-write-readable-and-maintainable-perl.html

======
geophile
My perl experience was brief and a long time ago, so apply a large grain of
salt.

I find perl to be a language that makes it easy to write bad, incomprehensible
code. I'm sure it's possible to write good perl. If you're going to take the
trouble to write good code, why not pick a language that actually supports
that goal? I don't understand why perl would be the starting point, when there
are alternatives like python and ruby available.

~~~
chromatic
_I find perl to be a language that makes it easy to write bad,
incomprehensible code._

Did you read a book or tutorial which explained the two types of context
(value and type) in Perl, the topic variable, or operator monomorphism?

~~~
geophile
It was a very long time ago (< 2000), so I don't remember if I ran across
these topics. I worked through one of the popular perl books of the day, cover
to cover. If the topics you mention are basic, and existed at the time, then I
probably ran into them.

The language struck me as a poorly integrated collection of features. I found
that it was a language that needed to be memorized more than understood. I
suppose that if I had stuck with it long enough, I would have internalized the
idioms and been productive with it.

Python was much more what I was looking for. I found it effortless to learn,
and that my intuition was usually correct. If I thought something should work,
based on my understanding of the language's key concepts, then it usually did
just work.

~~~
chromatic
_I suppose that if I had stuck with it long enough, I would have internalized
the idioms and been productive with it._

Yes, and that's my gravest concern about most Perl tutorials. Perl's
theoretical basics are sufficiently different from other Algol family
languages that they should be taught explicitly. Expecting people to intuit
them over time leads people to conclude that Perl is "a poorly integrated
collection of features."

The language _does_ have its warts, but it's much easier to work with when you
understand its underpinnings and work with them rather than against them.

(I apologize for the late reply.)

