22 comments

[ 2.3 ms ] story [ 93.5 ms ] thread
See http://search.cpan.org/%7Erjbs/perl-5.16.0/pod/perldelta.pod for the list of changes.

And if you want a copy of the announcement where the Unicode characters aren't broken, visit http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2012-...

Speaking of broken, that second link you give doesn't contain a meta tag specifying the encoding, and the webserver probably doesn't send it either, because I had to set my browser to UTF-8 manually to see the correct accents.
590,000 lines of changes is 30x as many lines as Lua's entire source distribution.

Just thought I'd mention this in light of yesterday's discussion about simplicity/complexity: http://news.ycombinator.com/item?id=3995185

The number includes cpan modules, not just the core language.
By the definition from Rich Hickey, lua seems to be optimized for simplicity while perl is for easiness.
I've been trading-in my habit of writing one-off Perl scripts for writing them in C#. I just clone a template file containing enough to get a "while(<>) { ... }" equivalent and a vanilla regular expression going -- ninety percent of what my one-offs need -- and I'm off and coding.

The result is something that may or may not be faster, or clearer . . . but it's a whole lot easier to debug when something goes wrong.

I learned Perl about a decade ago, and have never felt that plumbing its depths (references were about as sophisticated as I got) would pay off. (I won't get into what I think is broken about Perl, because that discussion definitely won't pay off :-) )

The open-source visual IDE written in Perl, called Padre, has an excellent integrated debugger. http://padre.perlide.org/.

With the latest version of Padre, I find debugging Perl scripts to be as easy as C#.

Or you can use the commercial Komodo editor which has another high quality Perl debugger.

Perl, the most humble of languages around. A mere 590,000 lines of code changes.
Anyone using Perl for new projects and why?
Yes.

Stability, maturity, great backwards compatibility, whipuptitude, a sea of well-cared mature modules on CPAN, the ease and convience of CPAN itself, already installed/available everywhere, Unicode support, creativity and competence of the community, exceptionally good documentation, "the spirit", MOP via Moose if I want to, rarely gets in my way, scales very well in terms of "thinking" and "project" (everything from tiny admin-script up to full-blown financial district application possible), speed, amazing interesting features in perl 6....

And no, you don't write the same Perl as in 1996 anymore.

Yes, I use it for new projects because it is:

* extremely stable

* CPAN, a huge collection of community provided modules

* great modern OOP based web frameworks (Mojolicious, Dancer, Catalyst)

* very strong Windows scripting support (WMI, Win32, etc) and BSD and Linux support

* there are lots of Perl programmers out "there" to hire if I need them

* The language is actively improved and updated with new features, see the free PDF "Modern Perl": http://onyxneon.com/books/modern_perl/

Not especially large ones, but yes, using it all the time. Want to exchange information between Active Directory and a relational database? Between Net::LDAP and DBI, Perl makes it easy. Need to rewrite quantities of old HTML to clean up unsupported tags? HTML::TreeBuilder is your friend.

In general, CPAN is a tremendous resource.

Yes, it is still a great glue for large projects. Right now I'm building a custom public health database with data from many different sources - some of them PDFs and other files with really irregular formatting that require single-use scripts with complex regular expressions. Perl was my first language so I can always purr through those problems, and I'm really comfortable (happy even) debugging a Perl script.

I'm also maintaining a legacy bioinformatics project with about 30,000 lines of Perl in it and still making expansions on it. I won't defend Perl as the best choice for that project other than to say I was around some very good Perl hackers / sysadmin types and I picked up the only tool with a knowledge well nearby. It did however make me a much better programmer, especially since I ended up implementing a lot of functions manually that I probably should have just found on CPAN or used as a built-in method in another language.

Perl is also really great when you are manually splitting data and jobs across a few thousand nodes and locally tweaking the run parameters for each job. Now that I've learned a few more languages I know that sort of thing might be better done with Hadoop but for a large GPFS system I rarely had problems.

I will say that for memory considerations (the main ceiling I bumped into on the old cluster) object-oriented Perl sucked and was very slow. If you wanted to roll your own pseudo-objects with well designed nested hashes though you could really wail.

I just started a new project a week back with the objective to apply real time effects/filters to an audio stream.

Main choice of programming language is Perl. Firstly as I have more than 10 years of experience using it. And secondly as its a fantastic glue language. And of course CPAN. The modules I'm going to be using are indispensable - CGI::Application, Audio::Ecasound, POE, Net::LibLO, MIDI::ALSA and more. This is my first project where I'm going to be doing audio stuff and Perl has made the transition so easy!

Yes. I'm too lazy to write code, so CPAN means I just pick the pieces I need and glue them together with Perl.
Not a new project, no. But I've been thrown into the perl fire recently. I've been assigned to make some changes to a million-lines-of-code perl project created in 1996. Had to teach myself perl 2 months ago and I've been hacking away at this monster ever since. I've made some progress but very slowly. Just trying to trace through an execution path is difficult since I still don't totally grok regexes. They won't let me hook up my linux box to the internet for various reasons so I can't connect to any repositories or download a debugger/IDE. Did I mention this is also my first experience with linux? I'm using a 5 year old version of redhat. So I use gedit and log files to figure out what's going on. Oh and it's a server/client program and for some reason there are tons of redundant copies of files in the server and client folders, not sure why.. Also fun to see 3,000 line functions with 6,000 lines of comments from the previous 30 programmers who've worked on the project over the past two decades..
I've been using Perl for more than 15 years in my company, where we've built projects using only Perl to create chat rooms, online forum, blog tool, webmail, web hosting control panel, email marketing and some other web tools that we offer to our clients.

I also use Perl for linguistics projects (text analysis, log processing, artificial intelligence, natural language processing, lots of regular expression). Many of our projects are more than 10.000 lines of Perl code.

I also have some personal projects (like my url shortener website www.bit.do) that were created with Perl.

My work tools are mainly Perl, Apache and Nginx web server and MySQL database.

Perl is mature, predictable and not really OO language. Which is fantastic. Because I can't stand OOP anymore.
Please don't; it's my secret weapon.
Just recently I spent a day writing a Perl chat server (and jquery webclient to go with it) for a large customer of ours, sort of a beta-gimmick for a good customer of ours. Now the thing became "mission-critical" (esp. on Fridays...). There are like 500 intranet users connected at any given time! I pulled the whole stunt thanks to the Mojolicious framework, from this article here:

https://github.com/kraih/mojo/wiki/Writing-websocket-chat-us...

Just added chat rooms and intranet user authentication. Then installed EV (for nodejs-grade event loop) from the CPAN, and the thing was deployed ready in production. Mojolicious is just amazing.

Congratulations to all involved! They've really got things back on track in the last several years. Things stagnated somewhat during the 5.6-5.8 era, but the 5.10 releases brought large positive changes, both to the codebase and to the development process itself.

Perl is still the go-to language for tasks within its purview (as described by other commenters here).