With very few exceptions, code written to run on any Perl released since 2000 (38 stable releases of Perl in that time period, eight of them major releases) runs without modification
That’s from a great little article by Chromatic about modern Perl in the latest issue of PragPub. The article goes in to discuss a number of other strengths of Perl, such as its strong community dedication to testing across numerous architectures, services for understanding package dependencies (that sound like they go beyond anything presently available for Ruby), and legendary standards of documentation.
It’s good to be reminded of things that other, more mature programming communities do well. I’m fond of pointing out that Perl had the best, most informative error message of any language ever. And Perl has been at the forefront in a lot of areas. Notably, as far as I’m aware it was the first language to take unicode integration seriously, and I would not be surprised if still has better support than any other programming system.
Don’t worry, P5P is working on fixing that right now
Since 2.0 was released Ruby is faring quite OK compatibility-wise and certainly a lot better than Python today. Perl situation is quite unique among programming languages.
“Catching up” implies that there’s some kind of goal line, or (in more-rigorous words) that there’s some specific, measurable deficiency that Ruby exhibits in comparison to Perl.
Is “being able to run the last 20 years of code without modification” really an appropriate goal for the Ruby community to sink their resources into? I’m not sure it is. I’ve never met a ruby developer who was stymied by the lack of perfect backwards-compatibility. If ruby users don’t need it, then it’s not a “deficiency” to not have it.
Of course this is an impressive achievement by our friends across the pond in Perl-land, but I don’t think it reflects poorly on Ruby to not be able to say the same.
That is not my experience. Any perl project the size of a small rails project or more starts running into CPAN dependency hell any time you try to upgrade the operating system under it. Pretty much the same as ruby: http://www.virtuouscode.com/2015/08/11/what-its-like-to-come-back-to-a-ruby-project-after-6-months/#more-8605
That’s why smart Perl programmers don’t rely on the system perl. Just use local::lib (or perlbrew or whatever) and cpanm to install/maintain the module set you need.