=head1 NAME perldelta - what's new for perl5.006 (as of 5.005_54) =head1 DESCRIPTION This document describes differences between the 5.005 release and this one. =head1 Incompatible Changes =head2 Perl Source Incompatibilities None known at this time. =head2 C Source Incompatibilities =over 4 =item C Release 5.005 grandfathered old global symbol names by providing preprocessor macros for extension source compatibility. As of release 5.006, these preprocessor definitions are not available by default. You need to explicitly compile perl with C<-DPERL_POLLUTE> in order to get these definitions. =item C and C Issues The C global is now thread local, so a C declaration is needed in the scope in which it appears. XSUBs should handle this automatically, but if you have used C in support functions, you either need to change the C to a local variable (which is recommended), or put in a C. =back =head2 Binary Incompatibilities This release is not binary compatible with the 5.005 release and its maintenance versions. =head1 Core Changes =head2 Binary numbers supported Binary numbers are now supported as literals, in s?printf formats, and C: $answer = 0b101010; printf "The answer is: %b\n", oct("0b101010"); =head2 syswrite() ease-of-use The length argument of C is now optional. =head2 64-bit support Better 64-bit support -- but full support still a distant goal. One must Configure with -Duse64bits to get Configure to probe for the extent of 64-bit support. Depending on the platform (hints file) more or less 64-awareness becomes available. As of 5.005_54 at least somewhat 64-bit aware platforms are HP-UX 11 or better, Solaris 2.6 or better, IRIX 6.2 or better. Naturally 64-bit platforms like Digital UNIX and UNICOS also have 64-bit support. =head1 Supported Platforms =over 4 =item * VM/ESA is now supported. =item * Siemens BS200 is now supported. =item * The Mach CThreads (NeXTstep) are now supported by the Thread extension. =back =head1 New tests =over 4 =item op/io_const IO constants (SEEK_*, _IO*). =item op/io_dir Directory-related IO methods (new, read, close, rewind, tied delete). =item op/io_multihomed INET sockets with multi-homed hosts. =item op/io_poll IO poll(). =item op/io_unix UNIX sockets. =item op/filetest File test operators. =item op/lex_assign Verify operations that access pad objects (lexicals and temporaries). =back =head1 Modules and Pragmata =head2 Modules =over 4 =item Dumpvalue Added Dumpvalue module provides screen dumps of Perl data. =item Benchmark You can now run tests for I seconds instead of guessing the right number of tests to run. =item Fcntl More Fcntl constants added: F_SETLK64, F_SETLKW64, O_LARGEFILE for large (more than 4G) file access (the 64-bit support is not yet working, though, so no need to get overly excited), Free/Net/OpenBSD locking behaviour flags F_FLOCK, F_POSIX, Linux F_SHLCK, and O_ACCMODE: the mask of O_RDONLY, O_WRONLY, and O_RDWR. =item Math::Complex The accessors methods Re, Im, arg, abs, rho, theta, methods can ($z->Re()) now also act as mutators ($z->Re(3)). =item Math::Trig A little bit of radial trigonometry (cylindrical and spherical) added, for example the great circle distance. =back =head2 Pragmata Lexical warnings pragma, "use warning;", to control optional warnings. Filetest pragma, to control the behaviour of filetests (C<-r> C<-w> ...). Currently only one subpragma implemented, "use filetest 'access';", that enables the use of access(2) or equivalent to check the permissions instead of using stat(2) as usual. This matters in filesystems where there are ACLs (access control lists), the stat(2) might lie, while access(2) knows better. =head1 Utility Changes Todo. =head1 Documentation Changes =over 4 =item perlopentut.pod A tutorial on using open() effectively. =item perlreftut.pod A tutorial that introduces the essentials of references. =back =head1 New Diagnostics =item /%s/: Unrecognized escape \\%c passed through (W) You used a backslash-character combination which is not recognized by Perl. This combination appears in an interpolated variable or a C<'>-delimited regular expression. =item Unrecognized escape \\%c passed through (W) You used a backslash-character combination which is not recognized by Perl. =item Missing command in piped open (W) You used the C or C construction, but the command was missing or blank. =head1 Obsolete Diagnostics Todo. =head1 Configuration Changes You can use "Configure -Uinstallusrbinperl" which causes installperl to skip installing perl also as /usr/bin/perl. This is useful if you prefer not to modify /usr/bin for some reason or another but harmful because many scripts assume to find Perl in /usr/bin/perl. =head1 Configuration Changes You can use "Configure -Uinstallusrbinperl" which causes installperl to skip installing perl also as /usr/bin/perl. This is useful if you prefer not to modify /usr/bin for some reason or another but harmful because many scripts assume to find Perl in /usr/bin/perl. =head1 BUGS If you find what you think is a bug, you might check the headers of recently posted articles in the comp.lang.perl.misc newsgroup. There may also be information at http://www.perl.com/perl/, the Perl Home Page. If you believe you have an unreported bug, please run the B program included with your release. Make sure you trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of C, will be sent off to > to be analysed by the Perl porting team. =head1 SEE ALSO The F file for exhaustive details on what changed. The F file for how to build Perl. The F file for general stuff. The F and F files for copyright information. =head1 HISTORY Written by Gurusamy Sarathy >, with many contributions from The Perl Porters. Send omissions or corrections to >. =cut