- Perl ›
- Version information ›
- here
The latest version of Perl, 5.16.0, has been released
The long-awaited latest version of Perl, Perl 5.16.0, was released on May 20, 2012.
[http://perl5.git.perl.org/perl.git/tag/refs/tags/v5.16.0:image=http://news.mynavi.jp/news/2011/03/02/009/images /001l.jpg]
This is the third release since the policy of releasing it once a year was decided. Perl has an image of active development among scripting languages. The Perl 5 logo is a dinosaur.
We have picked up new features and changes. Almost compatible with Unicode 6.1, added __SUB__, added debugger functions, changed the behavior of use VERSION, improved performance, and many bug fixes.
As a result, the Perl 5.12 series is no longer supported. Only critical security fixes will be made in the Perl 5.12 series.
New features
__SUB__
It is now possible to write __SUB__, which is similar to __FILE__ and __PACKAGE__. This is a feature that allows you to get a reference to the subroutine you are currently executing, making it easier to write recursive subroutine. It can be used in the state of use 5.16 or use feature 'current_sub'.
sub func { __SUB__->(); }
Add enable and disable in debugger
You can now enable and disable breakpoints.
Specify the file name in the breakpoint setting in the debugger
You can now specify the file name in addition to the line number with the b command (specify breakpoints).
b [file]: [line]
This may reduce the work of moving back and forth between files.
Many Perl keywords are now available in the CORE namespace
Until now, CORE was not actually a namespace, but it seems that CORE has become a namespace and can be treated in the same way as a normal namespace.
Core::tie
Providing a modified type map
Additional typemaps such as T_AVREF_REFCOUNT_FIXED are now provided. This is a story on XS.
HV * T_HVREF_REFCOUNT_FIXED
Almost compatible with Unicode 6.1
Almost compatible with Unicode 6.1. Please note that Unicode 6.0 and Unicode 6.1 are not fully compatible.
Speaking of Unicode6, it is characteristic that emoticons are included as characters. I wonder if it will be easier to create an application that sends emails from mobile phones.
Minor changes
use VERSION is now expected to work with that Perl version
The statement "use v5.16" is now expected to work with Perl 5.16.
use v5.16;
In other words, "use v5.14" expects Perl 5.14 to work, and "use v5.16" expects Perl 5.16 to work.
$[is no longer disabled under use v5.16.
$[Now is no longer valid under use v5.16.
Fixed a memory leak in a regular expression named capture
A memory leak in the following code has been fixed. This has been around since Perl 5.10.
for (1..10_000_000) { if ("foo" =~ /(foo | (? <capture> bar))?/) { my $capture = $+ {capture} } } system "ps -o rss $$"'
I wonder if named capture is now available in the daemon process.
Deprecated
Unicode database files located in lib/unicore are no longer read. This is to make Perl's core smaller. Use the new Unicode::UCD function instead.
Deprecated modules
- Version::Requirements
Version::Requirements has been deprecated. Use CPAN::Meta::Requirements.
Future deprecated modules
The following modules will be deprecated in the future. It will be removed after a while after being deprecated. However, it's still available on CPAN, so if you're using it, you'll have to spend more time installing it.
- CPANPLUS
- Filter::Simple
- PerlIO::mmap
- Pod::LaTeX
- Pod::Parser
- SelfLoader
- Text::Soundex
- Thread.pm
The core may get smaller little by little by removing unnecessary modules.
Removed modules and pragmas
The following modules have been removed from the core. It's on CPAN.
- Devel::DProf
- Shell
The following Perl4 format libraries have been removed.
abbrev.pl assert.pl bigfloat.pl bigint.pl bigrat.pl cacheout.pl complete.pl ctime.pl dotsh.pl exceptions.pl fastcwd.pl flush.pl getcwd.pl getopt.pl getopts.pl hostname.pl importenv.pl lib/find {, depth} .pl look.pl newgetopt.pl open2.pl open3.pl pwd.pl shellwords.pl stat.pl tainted.pl termcap.pl timelocal.pl
These are on CPAN's Perl4::CoreLibs.