69 karma · joined July 21, 2012
It was never a _defined_ order, but before version 5.17.6 (November 2012), each hash returned its list of keys and values in a _consistent_ order between runtimes, so some code ended up getting written that depended on this ordering (say in a unit test, or a list that would get assigned into a database). The change was to make the ordering random/inconsistent/unpredictable every time the list was fetched, which as I recall did break some number of tests in CPAN modules and required new releases.
I didn't much enjoy it when I was at the other end of it though, and sometimes he went too far. "Try to understand why the person doesn't understand" wasn't something he did enough -- sometimes the person doesn't know the right questions to ask, they just know that their thing doesn't work.
As a helper, it's hard to find the right balance, and I think the most important thing is that if you're getting emotional about it, step away and let someone else take the question. (I at least have been getting better at this over time.)
> Perl is a wonderful language once you get over the fact that a slightly quirky set of syntax and embedded regular expressions have a tendency to make it look like line noise in the wrong light. Once you're used to it, it's a hell of an expressive dynamically typed language with a huge set of libraries and classes available for it.
As I said on irc:
He brought many people into the community, and encouraged their growth (like me)
I popped into the scene by sending a few Moose patches and then coming onto irc displaying an utter lack of understanding of anything
Matt set me straight, and encouraged me to send more patches and I ended up as the manager for Moose
and then inherited the ownership of literally hundreds (perhaps thousands by now) distributions
that work helped me move from being mediocre at my job to being stellar, and enabled me to move on to much better jobs
Try::Tiny does its best without manipulating the parser itself; it's been superseded by Syntax::Keyword::Try (which alters the parser to make flow control work as you'd expect), and in the last few years of releases there is a native `try` keyword right in the language (which can be used in older versions via Feature::Compat::Try, which is a shim on top of Syntax::Keyword::Try in old versions and a no-op in new versions).
I don't want to name names, but a few prominent Perl contributors work there (yours truly included).
In fact, the JSON Schema specification even says that identifiers are just URIs and the evaluator implementation need not be expected to have to load the documents from the network (ref. https://json-schema.org/draft/2020-12/json-schema-core.html#... and https://json-schema.org/draft/2020-12/json-schema-core.html#...)
The JSON Schema specification actually does say that errors should indicate both the location within the data that the error occurred, and the path in the schema itself. So if you are having difficulty deciphering validation errors, that's a failure of your particular implementation failing to follow the spec, not the spec itself.
I certainly want perl 7 to be more than what has been so far ascribed to it, to make the major version number change truly worthwhile.
127.0.0.1 api.apple-cloudkit.com
127.0.0.1 *.api.apple-cloudkit.comThat's exactly why I've never mentioned Java on my resume (or in earlier times, Visual Basic) =D
Because there's a huge amount of applications and websites still built in it, and it's still a great language so new projects are written in it all the time.
source: my very prosperous career, which has been almost entirely in Perl for the last 15 years
Why? References are not scary and they work just like in any other language -- they are simply a memory address that points to another value stored somewhere else.