📄 perl570delta.pod
字号:
=item *scalar() now forces scalar context even when used in void context.=item *sort() arguments are now compiled in the right wantarray context(they were accidentally using the context of the sort() itself).=item *Changed the POSIX character class C<[[:space:]]> to include the (veryrare) vertical tab character. Added a new POSIX-ish character classC<[[:blank:]]> which stands for horizontal whitespace (currently,the space and the tab).=item *$AUTOLOAD, sort(), lock(), and spawning subprocessesin multiple threads simultaneously are now thread-safe.=item *Allow read-only string on left hand side of non-modifying tr///.=item *Several Unicode fixes (but still not perfect).=over 8=item *BOMs (byte order marks) in the beginning of Perl files(scripts, modules) should now be transparently skipped.UTF-16 (UCS-2) encoded Perl files should now be read correctly.=item *The character tables have been updated to Unicode 3.0.1.=item *chr() for values greater than 127 now create utf8 when under useutf8.=item *Comparing with utf8 data does not magically upgrade non-utf8 data intoutf8.=item *C<IsAlnum>, C<IsAlpha>, and C<IsWord> now match titlecase.=item *Concatenation with the C<.> operator or via variable interpolation,C<eq>, C<substr>, C<reverse>, C<quotemeta>, the C<x> operator,substitution with C<s///>, single-quoted UTF-8, should now work--intheory.=item *The C<tr///> operator now works I<slightly> better but is still ratherbroken. Note that the C<tr///CU> functionality has been removed (butsee pack('U0', ...)).=item *vec() now refuses to deal with characters >255.=item *Zero entries were missing from the Unicode classes like C<IsDigit>.=back=item *UNIVERSAL::isa no longer caches methods incorrectly. (This brokethe Tk extension with 5.6.0.)=back=head2 Platform Specific Changes and Fixes=over 4=item *BSDI 4.*Perl now works on post-4.0 BSD/OSes.=item *All BSDsSetting C<$0> now works (as much as possible; see perlvar for details).=item *CygwinNumerous updates; currently synchronised with Cygwin 1.1.4.=item *EPOCEPOC update after Perl 5.6.0. See README.epoc.=item *FreeBSD 3.*Perl now works on post-3.0 FreeBSDs.=item *HP-UXREADME.hpux updated; C<Configure -Duse64bitall> now almost works.=item *IRIXNumerous compilation flag and hint enhancements; accidental mixingof 32-bit and 64-bit libraries (a doomed attempt) made much harder.=item *LinuxLong doubles should now work (see INSTALL).=item *Mac OS ClassicCompilation of the standard Perl distribution in Mac OS Classic shouldnow work if you have the Metrowerks development environment and themissing Mac-specific toolkit bits. Contact the macperl mailing listfor details.=item *MPE/iXMPE/iX update after Perl 5.6.0. See README.mpeix.=item *NetBSD/sparcPerl now works on NetBSD/sparc.=item *OS/2Now works with usethreads (see INSTALL).=item *Solaris64-bitness using the Sun Workshop compiler now works.=item *Tru64 (aka Digital UNIX, aka DEC OSF/1)The operating system version letter now recorded in $Config{osvers}.Allow compiling with gcc (previously explicitly forbidden). Compilingwith gcc still not recommended because buggy code results, even withgcc 2.95.2.=item *UnicosFixed various alignment problems that lead into core dumps eitherduring build or later; no longer dies on math errors at runtime;now using full quad integers (64 bits), previously was using only 46 bit integers for speed.=item *VMSchdir() now works better despite a CRT bug; now works with MULTIPLICITY(see INSTALL); now works with Perl's malloc.=item *Windows=over 8=item *accept() no longer leaks memory.=item *Better chdir() return value for a non-existent directory.=item *New %ENV entries now propagate to subprocesses.=item *$ENV{LIB} now used to search for libs under Visual C.=item *A failed (pseudo)fork now returns undef and sets errno to EAGAIN.=item *Allow REG_EXPAND_SZ keys in the registry.=item *Can now send() from all threads, not just the first one.=item *Fake signal handling reenabled, bugs and all.=item *Less stack reserved per thread so that more threads can runconcurrently. (Still 16M per thread.)=item *C<< File::Spec->tmpdir() >> now prefers C:/temp over /tmp(works better when perl is running as service).=item *Better UNC path handling under ithreads.=item *wait() and waitpid() now work much better.=item *winsock handle leak fixed.=back=back=head1 New or Changed DiagnosticsAll regular expression compilation error messages are now hopefullyeasier to understand both because the error message now comes beforethe failed regex and because the point of failure is now clearlymarked.The various "opened only for", "on closed", "never opened" warningsdrop the C<main::> prefix for filehandles in the C<main> package,for example C<STDIN> instead of <main::STDIN>. The "Unrecognized escape" warning has been extended to include C<\8>,C<\9>, and C<\_>. There is no need to escape any of the C<\w> characters.=head1 Changed Internals=over 4=item *perlapi.pod (a companion to perlguts) now attempts to document theinternal API.=item *You can now build a really minimal perl called microperl.Building microperl does not require even running Configure;C<make -f Makefile.micro> should be enough. Beware: microperl makesmany assumptions, some of which may be too bold; the resultingexecutable may crash or otherwise misbehave in wondrous ways.For careful hackers only.=item *Added rsignal(), whichsig(), do_join() to the publicised API.=item *Made possible to propagate customised exceptions via croak()ing.=item *Added is_utf8_char(), is_utf8_string(), bytes_to_utf8(), and utf8_to_bytes().=item *Now xsubs can have attributes just like subs.=back=head1 Known Problems=head2 Unicode Support Still Far From PerfectWe're working on it. Stay tuned.=head2 EBCDIC Still A Lost PlatformThe plan is to bring them back.=head2 Building Extensions Can Fail Because Of LargefilesCertain extensions like mod_perl and BSD::Resource are known to haveissues with `largefiles', a change brought by Perl 5.6.0 in which fileoffsets default to 64 bits wide, where supported. Modules may fail tocompile at all or compile and work incorrectly. Currently there is nogood solution for the problem, but Configure now provides appropriatenon-largefile ccflags, ldflags, libswanted, and libs in the %Confighash (e.g., $Config{ccflags_nolargefiles}) so the extensions that arehaving problems can try configuring themselves without thelargefileness. This is admittedly not a clean solution, and thesolution may not even work at all. One potential failure is whetherone can (or, if one can, whether it's a good idea) link together atall binaries with different ideas about file offsets, all this isplatform-dependent.=head2 ftmp-security tests warn 'system possibly insecure'Don't panic. Read INSTALL 'make test' section instead. =head2 Test lib/posix Subtest 9 Fails In LP64-Configured HP-UXIf perl is configured with -Duse64bitall, the successful result of thesubtest 10 of lib/posix may arrive before the successful result of thesubtest 9, which confuses the test harness so much that it thinks thesubtest 9 failed.=head2 Long Doubles Still Don't Work In SolarisThe experimental long double support is still very much so in Solaris.(Other platforms like Linux and Tru64 are beginning to solidify inthis area.)=head2 Linux With Sfio Fails op/misc Test 48No known fix.=head2 Storable tests fail in some platformsIf any Storable tests fail the use of Storable is not advisable.=over 4=item *Many Storable tests fail on AIX configured with 64 bit integers.So far unidentified problems break Storable in AIX if Perl isconfigured to use 64 bit integers. AIX in 32-bit mode works andother 64-bit platforms work with Storable.=item *DOS DJGPP may hang when testing Storable.=item *st-06compat fails in UNICOS and UNICOS/mk.This means that you cannot read old (pre-Storable-0.7) Storable imagesmade in other platforms.=item *st-store.t and st-retrieve may fail with Compaq C 6.2 on OpenVMS Alpha 7.2.=back=head2 Threads Are Still ExperimentalMultithreading is still an experimental feature. Some platformsemit the following message for lib/thr5005 # # This is a KNOWN FAILURE, and one of the reasons why threading # is still an experimental feature. It is here to stop people # from deploying threads in production. ;-) #and another known thread-related warning is pragma/overload......Unbalanced saves: 3 more saves than restores panic: magic_mutexfree during global destruction. ok lib/selfloader.......Unbalanced saves: 3 more saves than restores panic: magic_mutexfree during global destruction. ok lib/st-dclone........Unbalanced saves: 3 more saves than restores panic: magic_mutexfree during global destruction. ok=head2 The Compiler Suite Is Still ExperimentalThe compiler suite is slowly getting better but is nowhere nearworking order yet. The backend part that has seen perhaps the mostprogress is the bytecode compiler.=head1 Reporting BugsIf you find what you think is a bug, you might check the articlesrecently posted to the comp.lang.perl.misc newsgroup and the perlbug database at http://bugs.perl.org/ There may also beinformation at http://www.perl.com/perl/ , the Perl Home Page.If you believe you have an unreported bug, please run the B<perlbug>program included with your release. Be sure to trim your bug downto a tiny but sufficient test case. Your bug report, along with theoutput of C<perl -V>, will be sent off to perlbug@perl.org to beanalysed by the Perl porting team.=head1 SEE ALSOThe F<Changes> file for exhaustive details on what changed.The F<INSTALL> file for how to build Perl.The F<README> file for general stuff.The F<Artistic> and F<Copying> files for copyright information.=head1 HISTORYWritten by Jarkko Hietaniemi <F<jhi@iki.fi>>, with many contributionsfrom The Perl Porters and Perl Users submitting feedback and patches.Send omissions or corrections to <F<perlbug@perl.org>>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -