Perl 5.22 Released
kthreadd writes: Version 5.22 of the Perl programming language has just been released. A major new feature in this release is the double diamond operator; like the regular diamond operator it allows you to quickly read through files specified on the command line but does this in a much safer way by not evaluating special characters in the file names. Other new features include hexadecimal floating point numbers, improved variable aliasing and a nicer syntax for repetition in list assignment. Also, historical Perl modules CGI.pm and Module::Build are removed from the core distribution.
Finally!@#$% :)
"To err is human, to forgive, beyond the scope of the Operating System"
Because I wrote it in Perl 6
So was it Perl 6 or you that failed?
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
What's the use case for hexadecimal floating point numbers? Seems like a "Why not" feature.
I work as a system administrator and although Python is quite popular nowadays I would say Perl is still one of the go-to choices for a lot of sysadmins. Sure Python is doing just fine, a lot of people use it; but I wouldn't say that it has replaced Perl in any way.
Nah.... Python replaced Fortran 77. At least in the significant white space arena.
Significant white space? Seriously?
putting the 'B' in LGBTQ+
For sufficiently {1940, Germany, Soviet Union} values of co-exist.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Perl isn't going anywhere. In fact, installs and contributions to CPAN are up almost 1200% in the last 10 years. What's happened to Perl, is it's become ubiquitous...it's literally everywhere. It's not our fault you haven't noticed.
Replaced where? Apparently not on my Debian servers:
# find /etc /bin /sbin /usr/bin /usr/sbin -type f | xargs file | grep "Perl script" | wc -l /etc /bin /sbin /usr/bin /usr/sbin -type f | xargs file | grep "Python script" | wc -l
119
# find
29
$ perl -e 'print 0xC3P0'
195
$
Isn't Ruby the true heir to Perl, though?
That was the theory. People got tired of waiting for a fast, memory-efficient runtime. Python is faster, if you have tremendous amounts of memory and can accept the syntax.
That perl hasn't been supplanted by a better scripting language doesn't say as much about perl as about everything else. There's some scuttlebut that Rust may do that, but it's early days and Mozilla still has plenty of opportunity to destroy it.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
The last time I heard about Perl was in college ten years ago. I was taking Perl because it wasn't Java. The college couldn't afford to renew Microsoft site license for a few years, hence every programming course had every flavor of java: strong, black and hot. Long story short, the Perl class got cancelled.
Perl6 is almost ready
Fifteen years in the oven, that better be one tasty cake!
No, Ruby was a fad for hipsters. Python is the true heir.
Perl updates for the past ten years have been mostly unloved features and cruft. If 5.6 didn't get the job done then 5.22 won't either.
This is just a "look at me, I'm uninformed about the languages landscape" post (good thing you went AC). Like Perl or not, most people who care about open source development know that the Perl nuts have been busy backporting the ideas that were supposed to show up in Perl 6 to Perl 5.
Whether or not that goes anywhere is separate from being ignorant about what's going on.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Ruby was built from an insecure and crash-prone mindset. newLISP is like Perl... but readable!
Robots. Lots of robots.
Perl6 is almost ready
Fifteen years in the oven, that better be one tasty cake!
Well.. You KNOW it won't be half baked..
Yes folks.. I'm here all week and we have no cover... Please tip the waitress..
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
I had a roommate who left a squash inside a toaster oven on low heat overnight. The next morning I found it. The squash got carbonized (burned) all the way through, blackened and hard as a rock.
Nah.... Python replaced Fortran 77. At least in the significant white space arena.
Significant white space? Seriously?
Yea, what's old is new again!
It was a bad idea the first time folks, although there was justification back then due to restrictions in program size and character sets...
Stick around, I'm sure we will recycle a LOT of old ideas.... Trick is to line up the new name with the old...
Cloud Computing == Mainframe
Etc.. You try a few...
"File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
In those days they used punch cards so there *was* justification, it was a limitation of technology available at the time. To reintroduce it, 4 years after it was abandoned by Fortran 90, is a serious lapse of good sense. There is no good reason to have it other than as a joke or out of sadism.
putting the 'B' in LGBTQ+
I though Perl got replaced by Python years ago.
In the same way that the crappy CGI programs written by crappy (non-)programmers space has been replaced by PHP, yes, Perl has been replaced by Python in many other write-crappy programs by (non-)programmer spaces. But hey, you can brag that objects are part of the language! (even though it's the same object system as Perl).
"Etc.. You try a few..."
Graph databases = network databases and they sucked then as now
NoSQL databases = recipe card and network DBs and they sucked then and suck now
Java VM = UCSD Pascal
VMs = IBM VM OS
DevOps = 80's and 90's start ups where you had to do everything.... and it sucked
Browser = Thin client
IM = IRC
XQuery = Heirarchical databases which sucked then and suck now
OO languiages such as Java are converging on LISP and the LISP family of programming languages vindicating a language approach invented in the 50's and which does not suck.
That's what immediately comes to mind.
putting the 'B' in LGBTQ+
bigint has been around for a while. Is that not what you want?
just because *you* don't give a shit, doesn't mean no one else will. And Perl6 was written from the ground up to address all the shortcomings in Perl5, but all the current languages. It's essentially a brand new language, It also uses the Parrot interpreter to do a neat trick; you can mix languages. So Perl6 can use C, Python, etc natively.
Actually, computer programming. Project management was what I did before I went back to school.
The expired Microsoft site license was the reason why every programming course had every flavor of Java. I took Perl because it wasn't Java, but the class got cancelled on the first day for not having enough students. Perl fell off my radar since then. The only reason I picked up Python was because I worked at Google for a while.
On my FreeNAS file server:
# find /etc /bin /sbin /usr/bin /usr/sbin -type f | xargs file |
grep "Perl script" | wc -l /etc /bin /sbin /usr/bin /usr/sbin -type f | xargs file |
grep "Python script" | wc -l
2
# find
2
Maybe not a fair comparison. :)
What kind of hick college gives a degree in computer programming?
Considering this suggestion I'm glad to see that you did improve a bit.
CLI paste? paste.pr0.tips!
I wrote my sig in perl
CLI paste? paste.pr0.tips!
for f in python perl shell script; do printf '%s: %s\n' "$f" "$(find /{,usr/{,pkg/,local/}}*bin -type f -print0 | xargs -0 file | grep -Fi "$f" | wc -l)"; done
python: 11
perl: 39
shell: 260
script: 314
CLI paste? paste.pr0.tips!
the exec + is asking for trouble. exec \; is asking for slow.
the correct way is, as you mentioned, -print0 | xargs -0
CLI paste? paste.pr0.tips!
I think the same about Java.
I'm surprised no one's posted this yet.
Community colleges.
Yes. Precisely.
Python 3.x is not Python 2.x by any means. Python 2 code won't work under Python 3, and safe conversion requires complete re-testing and so is unlikely to be a practical or sane option for many installations, regardless of tools that do it automatically. That's not to say that Python 3 might not be a better language than Python 2; just that it isn't the same language, any more than Ruby or Perl is the same as Python 2.
But this is one area where open source comes to the rescue. The ability to keep Python 2.x relevant without breaking everything is readily available to anyone who needs it and can afford the investments in time and effort. Python 3 is an option, not a requirement, just as the new version of Perl is.
I've fallen off your lawn, and I can't get up.
If your editor can't tell you the difference between tabs and spaces, you need a better editor. It's 2015. No need to stick with weak development tools.
Which is not to say that Ruby isn't a fine language. It is. As is Python 2. And 3.
I've fallen off your lawn, and I can't get up.
Yes. Much better to type 4 or 8 spaces when you could have just hit tab once. I totally see your point. You bet.
Can I subscribe to your newsletter?
I've fallen off your lawn, and I can't get up.
There is an issue of readability that crops up when maintainance is a consideration. Serious regex reads like APL after being put through a shredder.
I'd rather not use a regex if there's something clearer available:
myString.find('searchTerm')
myString.replace('searchTerm','replacementTerm')
On the other hand, when writing my own language (yeah, I know, shut up), one of the very first things I did was incorporate regex handling, so WTF. :)
I've fallen off your lawn, and I can't get up.
I don't know about this idea that no one cares. Perl6 introduces a lot of interesting concepts and techniques, it is very advanced. Perl today is much smaller than Perl was when Perl6 was announced but still larger than Perl was during the days of Perl 4. I don't know whether Perl will make a comeback or remain influential. But I certainly believe either is possible. The ideas in Perl6 have already influenced mixed paradigm languages like Scala.
As for your example of C++ and C I think your history is off. C was more tightly tied to Unix culture when C++ arrived. C++ became a default for application windowing environment like Mac and Windows. At the same time, C became standard for systems programming. While there is some overlap in problem domain C and C++ rarely competed.
Java conversely was solving the cross platform compatibility problem and a desire not to port. It certainly did compete with C++ but competed by offering a feature that C++ simply didn't offer at all.
@Bill
Why do you consider Rust to be a scripting language: compiled, no garbage collection... ? I'd consider it more a competitor / modern update to C or Forth than Perl or Ruby. So I'm curious where you are coming from on this.
It also uses the Parrot interpreter to do a neat trick; you can mix languages.
Well, no. Parrot support has been suspended in Rakudo Perl 6. The other backends (MoarVM, Java) are faster and have more features.
So Perl6 can use C, Python, etc natively.
Even if Rakudo still supported Parrot, that would be only possible if C, Python support had been implemented on top of Parrot. Which is not the case. Parrot was a dream that never convinced much people.
What's next, support for long integer arithmetics?
perl 5 already has built-in support for 53 bits integers on 32 bits builds (check perl -V:nv_preserves_uv_bits on your platform). If you want more your can use the bigint pragma.
Perl 5 is still waiting for Python, Ruby to catch up on the Unicode support that Perl had in 2002. And Unicode support in Perl 5 has improved since.
Perl 6 will even have support for graphemes.
OO languiages such as Java are converging on LISP and the LISP family of programming languages vindicating a language approach invented in the 50's and which does not suck.
In what sense? If you mean first-class functions and the associated techniques and patterns, then this is not at all unique to Lisp. The real distinguishing feature of Lisp is code-as-data and manipulations on it, and mainstream OO languages are definitely not anywhere even close.
They are headed there. I think it started when reflection became mainstream.
putting the 'B' in LGBTQ+