[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Upgrade troubles with Perl

gregor herrmann wrote...

> Which kind of problems did you see with new Perl versions (I could
> imagine incompatible old third-party software), and is there
> something the Debian perl maintainers and/or the Debian Perl Group
> can do to improve the situation?

At first I was about to say those who never went past 5.6 in their
coding style are perfectly safe. But then I remembered not even that
is (probably) true: At some time in the past, I don't even know when,
the semantics of \d changed to something different from [0-9] - which
kills performance and might be a promising vector to break into code.
Although I have to admit I haven't seen that in the wild.

Nevertheless, two things where I got bitten:

In 5.18, upstream decided to discourage usage of smart matches and
given..when after these have existed since 5.10 (or: more than six
years) by marking them as experimental, and did this in a very harsh
way. This will drive me away from using Perl as my preferred
programming language.

While no doubt these constructs have major design flaws, upstream
chose the approach of maximum annoyance by creating a warning message
for each and every usage. Instead of deciding first where to change
the semantics and then creating warnings only for places it might
break in the future.

Not going further into details, there are ways to work around it, none
of them is really charming. Especially since my code must run without
modification in every distribution since squeeze. So in a way I hope
jessie will not ship 5.20 if released until then. Since I can expect
I'll have to work through virtually every Perl I've written a *second*
time. If that wasn't obvious: I had code breakage due to that change,
not only cosmetical.

Second, there's a regression in the handling of in-memory file handle.
Broke my code when giving it a first try on jessie. And I am still
*very* upset why #747363 should be anything below RC.


Reply to: