text: PERL589DELTA(1) Perl Programmers Reference Guide PERL589DELTA(1)icing · "-Dq" suppresses the EXECUTING... message when running under "-D" · "-Dl" logs runops loop entry and exit, and jump level popping. · "-Dv" displays: · DragonFlyBSD · MidnightBSD · MirOS BSD · RISC OS · Cray XT4/Catamount Modules and Pragmata New Modules · "Module::Pluggable" is a simple framework to create modules that accept pluggable sub-modules. The bundled version is 3.8 · "Module::CoreList" is a hash of hashes that is keyed on perl version as indicated in $]. The bundled version is 2.17 · "Win32API::File" now available in core on Microsoft Windows. The bundled version is 0.1001_01 · "Devel::InnerPackage" finds all the packages defined by a single file. It is part of the "Module::Pluggable" distribution. The bundled version is 0.3 Updated Modules · "attributes" upgraded to version 0.09 · "AutoLoader" upgraded to version 5.67 · "AutoSplit" upgraded to 1.06 · "autouse" upgraded to version 1.06 · "B" upgraded from 1.09_01 to 1.19 · provides new pad related abstraction macros "B::NV::COP_SEQ_RANGE_LOW", "B::NV::COP_SEQ_RANGE_HIGH", "B::NV::PARENT_PAD_INDEX", "B::NV::PARENT_FAKELEX_FLAGS", which hides the difference in storage in 5.10.0 and later. · provides "B::sub_generation", which exposes "PL_sub_generation" · provides "B::GV::isGV_with_GP", which on pre-5.10 perls always returns true. · New type "B::HE" added with methods "VAL", "HASH" and "SVKEY_force" · The "B::GVf_IMPORTED_CV" flag is now set correctly when a proxy constant subroutine is imported. · bugs fixed in the handling of "PMOP"s. · "B::BM::PREVIOUS" returns now "U32", not "U16". "B::CV::START" and "B:CV::ROOT" return now "NULL" on an XSUB, "B::CV::XSUB" and "B::CV::XSUBANY" return 0 on a non-XSUB. · "B::C" upgraded to 1.05 · "B::Concise" upgraded to 0.76 · new option "-src" causes the rendering of each statement (starting with the nextstate OP) to be preceded by the first line of source code that generates it. · new option "-stash="somepackage"", "require"s "somepackage", and then renders each function defined in its namespace. · now has documentation of detailed hint symbols. · "B::Debug" upgraded to version 1.05 · "B::Deparse" upgraded to version 0.87 · properly deparse "print readpipe $x, $y". · {}' · does not deparse $^H{v_string}, which is automatically set by the internals. · "B::Lint" upgraded to version 1.11 · "B::Terse" upgraded to version 1.05 · "base" upgraded to version 2.13 · loading a module via base.pm would mask a global $SIG{__DIE__} in that module. · push all classes at once in @ISA · "Benchmark" upgraded to version 1.10 · "bigint" upgraded to 0.23 · "bignum" upgraded to 0.23 · "bigrat" upgraded to 0.23 · "blib" upgraded to 0.04 · "Carp" upgraded to version 1.10 The argument backtrace code now shows "undef" as "undef", instead of a string "undef". · "CGI" upgraded to version 3.42 · "charnames" upgraded to 1.06 · "constant" upgraded to version 1.17 · "CPAN" upgraded to version 1.9301 · "Cwd" upgraded to version 3.29 with some platform specific improvements (including for VMS). · "Data::Dumper" upgraded to version 2.121_17 · Fixes hash iterator current position with the pure Perl version [RT #40668] · Performance enhancements, which will be most evident on platforms where repeated calls to C's "realloc()" are slow, such as Win32. · "DB_File" upgraded to version 1.817 · "DB_Filter" upgraded to version 0.02 · "Devel::DProf" upgraded to version 20080331.00 · "Devel::Peek" upgraded to version 1.04 · "Devel::PPPort" upgraded to version 3.14 · "diagnostics" upgraded to version 1.16 · "Digest" upgraded to version 1.15 · "Digest::MD5" upgraded to version 2.37 · "DirHandle" upgraded to version 1.02 · now localises $., $@, $!, $^E, and $? before closing the directory handle to suppress leaking any side effects of warnings about it already being closed. · "DynaLoader" upgraded to version 1.09 "DynaLoader" can now dynamically load a loadable object from a file with a non-default file extension. · "Encode" upgraded to version 2.26 "Encode::Alias" includes a fix for encoding "646" on Solaris (better known as ASCII). · "English" upgraded to version 1.03 · "Errno" upgraded to version 1.10 · "Exporter" upgraded to version 5.63 · "ExtUtils::Command" upgraded to version 1.15 · "ExtUtils::Constant" upgraded to version 0.21 · "ExtUtils::Embed" upgraded to version 1.28 · "ExtUtils::Install" upgraded to version 1.50_01 · "ExtUtils::Installed" upgraded to version 1.43 · "ExtUtils::MakeMaker" upgraded to version 6.48 · support for "INSTALLSITESCRIPT" and "INSTALLVENDORSCRIPT" configuration. · "ExtUtils::Manifest" upgraded to version 1.55 · "ExtUtils::ParseXS" upgraded to version 2.19 · "Fatal" upgraded to version 1.06 · allows built-ins in "CORE::GLOBAL" to be made fatal. · "Fcntl" upgraded to version 1.06 · "fields" upgraded to version 2.12 · "File::Basename" upgraded to version 2.77 · "FileCache" upgraded to version 1.07 · "File::Compare" upgraded to 1.1005 · "File::Copy" upgraded to 2.13 · now uses 3-arg open. · "File::DosGlob" upgraded to 1.01 · "File::Find" upgraded to version 1.13 · "File::Glob" upgraded to version 1.06 · fixes spurious results with brackets inside braces. · "File::Path" upgraded to version 2.07_02 · "File::Spec" upgraded to version 3.29 · improved handling of bad arguments. · some platform specific improvements (including for VMS and Cygwin), with an optimisation on "abs2rel" when handling both relative arguments. · "File::stat" upgraded to version 1.01 · "File::Temp" upgraded to version 0.20 · "filetest" upgraded to version 1.02 · "Filter::Util::Call" upgraded to version 1.07 · "Filter::Simple" upgraded to version 0.83 · "FindBin" upgraded to version 1.49 · "GDBM_File" upgraded to version 1.09 · "Getopt::Long" upgraded to version 2.37 · "Getopt::Std" upgraded to version 1.06 · "Hash::Util" upgraded to version 0.06 · "if" upgraded to version 0.05 · "IO" upgraded to version 1.23 Reduced number of calls to "getpeername" in "IO::Socket" · "IPC::Open" upgraded to version 1.03 · "IPC::Open3" upgraded to version 1.03 · "IPC::SysV" upgraded to version 2.00 · "lib" upgraded to version 0.61 · avoid warning about loading .par files. · "libnet" upgraded to version 1.22 · "List::Util" upgraded to 1.19 · "Locale::Maketext" upgraded to 1.13 · "Math::BigFloat" upgraded to version 1.60 · "Math::BigInt" upgraded to version 1.89 · "Math::BigRat" upgraded to version 0.22 · implements new "as_float" method. · "Math::Complex" upgraded to version 1.54. · "Math::Trig" upgraded to version 1.18. · "NDBM_File" upgraded to version 1.07 · improve g++ handling for systems using GDBM compatibility headers. · "Net::Ping" upgraded to version 2.35 · "NEXT" upgraded to version 0.61 · fix several bugs with "NEXT" when working with "AUTOLOAD", "eval" block, and within overloaded stringification. · "ODBM_File" upgraded to 1.07 · "open" upgraded to 1.06 · "ops" upgraded to 1.02 · "PerlIO::encoding" upgraded to version 0.11 · "PerlIO::scalar" upgraded to version 0.06 · [RT #40267] "PerlIO::scalar" doesn't respect readonly-ness. · "PerlIO::via" upgraded to version 0.05 · "Pod::Html" upgraded to version 1.09 · "Pod::Parser" upgraded to version 1.35 · "Pod::Usage" upgraded to version 1.35 · "POSIX" upgraded to version 1.15 · "POSIX" constants that duplicate those in "Fcntl" are now imported from "Fcntl" and re-exported, rather than being duplicated by "POSIX" · "POSIX::remove" can remove empty directories. · "POSIX::setlocale" safer to call multiple times. · "POSIX::SigRt" added, which provides access to POSIX realtime signal functionality on systems that support it. · "re" upgraded to version 0.06_01 · "Safe" upgraded to version 2.16 · "Scalar::Util" upgraded to 1.19 · "SDBM_File" upgraded to version 1.06 · "SelfLoader" upgraded to version 1.17 · "Shell" upgraded to version 0.72 · "sigtrap" upgraded to version 1.04 · "Socket" upgraded to version 1.81 · this fixes an optimistic use of "gethostbyname" · "Storable" upgraded to 2.19 · "Switch" upgraded to version 2.13 · "Sys::Syslog" upgraded to version 0.27 · "Term::ANSIColor" upgraded to version 1.12 · "Term::Cap" upgraded to version 1.12 · "Term::ReadLine" upgraded to version 1.03 · "Test::Builder" upgraded to version 0.80 · "Test::Harness" upgraded version to 2.64 · this makes it able to handle newlines. · "Test::More" upgraded to version 0.80 · "Test::Simple" upgraded to version 0.80 · "Text::Balanced" upgraded to version 1.98 · "Text::ParseWords" upgraded to version 3.27 · "Text::Soundex" upgraded to version 3.03 · "Text::Tabs" upgraded to version 2007.1117 · "Text::Wrap" upgraded to version 2006.1117 · "Thread" upgraded to version 2.01 · "Thread::Semaphore" upgraded to version 2.09 · "Thread::Queue" upgraded to version 2.11 · added capability to add complex structures (e.g., hash of hashes) to queues. · added capability to dequeue multiple items at once. · added new methods to inspect and manipulate queues: "peek", "insert" and "extract" · "Tie::Handle" upgraded to version 4.2 · "Tie::Hash" upgraded to version 1.03 · "Tie::Memoize" upgraded to version 1.1 · "Tie::Memoize::EXISTS" now correctly caches its results. · "Tie::RefHash" upgraded to version 1.38 · "Tie::Scalar" upgraded to version 1.01 · "Tie::StdHandle" upgraded to version 4.2 · "Time::gmtime" upgraded to version 1.03 · "Time::Local" upgraded to version 1.1901 · "Time::HiRes" upgraded to version 1.9715 with various build improvements (including VMS) and minor platform-specific bug fixes (including for HP-UX 11 ia64). · "threads" upgraded to 1.71 · new thread state information methods: "is_running", "is_detached" and "is_joinable". "list" method enhanced to return running or joinable threads. · new thread signal method: "kill" · added capability to specify thread stack size. · added capability to control thread exiting behavior. Added a new "exit" method. · "threads::shared" upgraded to version 1.27 · smaller and faster implementation that eliminates one internal structure and the consequent level of indirection. · user locks are now stored in a safer manner. · new function "shared_clone" creates a copy of an object leaving shared elements as-is and deep-cloning non-shared elements. · added new "is_shared" method. · "Unicode::Normalize" upgraded to version 1.02 · "Unicode::UCD" upgraded to version 0.25 · "warnings" upgraded to version 1.05_01 · "Win32" upgraded to version 0.38 · added new function "GetCurrentProcessId" which returns the regular Windows process identifier of the current process, even when called from within a fork. · "XSLoader" upgraded to version 0.10 · "XS::APItest" and "XS::Typemap" are for internal use only and hence no longer installed. Many more tests have been added to "XS::APItest". Utility Changes debugger upgraded to version 1.31 · Andreas Koenig contributed two functions to save and load the debugger history. · "NEXT::AUTOLOAD" no longer emits warnings under the debugger. · The debugger should now correctly find tty the device on OS X 10.5 and VMS when the program "fork"s. · · won't define an empty string as a constant [RT #25366] · has examples for "h2xs -X" h2ph · now attempts to deal sensibly with the difference in path implications between "" and "<>" quoting in "#include" statements. · now generates correct. perlfunc: · Documentation is fixed in section "caller" and "pop". · Function "alarm" now mentions "Time::HiRes::ualarm" in preference to "select". · Regarding precedence in "-X", filetest operators are the same as unary operators, but not regarding parsing and parentheses (spotted by Eirik Berg Hanssen). · reverse functionoth ·" to. · "diagnostics" no longer uses $&, which results in large speedups for regexp matching in all code using it. · Regular expressions classes of a single character are now treated the same as if the character had been used as a literal, meaning that code that uses char-classes as an escaping mechanism will see a speedup. (Yves Orton) ·. · *". · "index" is now faster if the search string is stored in UTF-8 but only contains characters in the Latin-1 range. ·: · static library files of statically linked extensions when a shared perl library is being used. (They are not needed. See "Windows" below). · SIGNATURE and PAUSE*.pub (CPAN files) · NOTES and PATCHING (ExtUtils files) · · Drop "-std=c89" and "-ansi" if using "long long" as the main integral type, else in FreeBSD 6.2 (and perhaps other releases), system headers do not declare some functions required by perl. Solaris · · Allow IEEE math to be deselected on OpenVMS I64 (but it remains the default). · Record IEEE usage in "config.h" · Help older VMS compilers by using "ccflags" when building "munchconfig.exe". · Don't try to build old "Thread" extension on VMS when "-Duseithreads" has been chosen. · Passing a raw string of "NaN" to nawk causes a core dump - so the string has been changed to "*NaN*" · t/op/stat.t tests will now test hard links on VMS if they are supported. Windows ·. · Various improvements to the win32 build process, including support for Visual C++ 2005 Express Edition (aka Visual C++ 8.x). · perl.exe will now have an icon if built with MinGW or Borland. · Improvements to the perl-static.exe build process. · Add Win32 makefile option to link all extensions statically. · The WinCE directory has been merged into the Win32 directory. · "setlocale" tests. Other fixes · The tokenizer no longer treats "=cute" (and other words beginning with "=cut") as a synonym for "=cut". · Calling "CORE::require" "CORE::require" and "CORE::do" were always parsed as "require" and "do" when they were overridden. This is now fixed. · Stopped memory leak on long /etc/groups entries. · "while (my $x ...) { ...; redo }" shouldn't "undef $x". In the presence of "my" in the conditional of a "while()", "until()", or "for(;;)" loop, we now add an extra scope to the body so that "redo" doesn't "undef" the lexical. · The "encoding" pragma now correctly ignores anything following an "@" character in the "LC_ALL" and "LANG" environment variables. [RT # 49646] · A segfault observed with some gcc 3.3 optimisations is resolved. · A possible segfault when "unpack" used in scalar context with "()" groups is resolved. [RT #50256] · Resolved issue where $! could be changed by a signal handler interrupting a "system" call. · Fixed bug RT #37886, symbolic deferencing was allowed in the argument of "defined" even under the influence of "use strict 'refs'". · Fixed bug RT #43207, where "lc"/"uc" inside "sort" affected the return value. · Fixed bug RT #45607, where "*{"BONK"} = \&{"BONK"}" didn't work correctly. · Fixed bug RT #35878, croaking from a XSUB called via "goto &xsub" corrupts perl internals. ·. · Fix bug RT #36267 so that assigning to a tied hash doesn't change the underlying hash. · Fix bug RT #6006, regexp replaces using large replacement variables fail some of the time, i.e. when substitution contains something like "${10}" (note the bracket) instead of just $10. · Fix bug RT #45053, "Perl_newCONSTSUB()" is now thread safe. Platform Specific Fixes Darwin / MacOS X · Various improvements to 64 bit builds. · Mutex protection added in "PerlIOStdio_close()" to avoid race conditions. Hopefully this fixes failures in the threads tests free.t and blocks.t. · Added forked terminal support to the debugger, with the ability to update the window title. OS/2 · A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but without "USE_IMP_SYS" has been fixed. · "OS2::REXX" upgraded to version 1.04 Tru64 · Aligned floating point build policies for cc and gcc. RedHat Linux · Revisited a patch from 5.6.1 for RH7.2 for Intel's icc [RT #7916], added an additional check for $Config{gccversion}. Solaris/i386 · Use "-DPTR_IS_LONG" when using 64 bit integers VMS · Fixed "PerlIO::Scalar" in-memory file record-style reads. · pipe shutdown at process exit should now be more robust. · Bugs in VMS exit handling tickled by "Test::Harness" 2.64 have been fixed. · Fix "fcntl()" locking capability test in configure.com. · Replaced "shrplib='define'" with "useshrplib='true'" on VMS. Windows · "File::Find" used to fail when the target directory is a bare drive letter and "no_chdir" is 1 (the default is 0). [RT #41555] · A build problem with specifying "USE_MULTI" and "USE_ITHREADS" but without "USE_IMP_SYS" has been fixed. · The process id is no longer truncated to 16 bits on some Windows platforms ( ) · Fixed bug RT #54828 in perlio.c where calling "binmode" on Win32 and Cgywin may cause a segmentation fault. Smaller fixes · It is now possible to overload "eq" when using "nomethod". · Various problems using "overload" with 64 bit integers corrected. · The reference count of "PerlIO" file descriptors is now correctly handled. · On VMS, escaped dots will be preserved when converted to UNIX syntax. · "keys %+" no longer throws an 'ambiguous' warning. · Using "#!perl -d" could trigger an assertion, which has been fixed. · Don't stringify tied code references in @INC when calling "require". · Code references in @INC report the correct file name when "__FILE__" is used. · Width and precision in sprintf didn't handle characters above 255 correctly. [RT #40473] · List slices with indices out of range now work more consistently. [RT #39882] · A change introduced with perl 5.8.1 broke the parsing of arguments of the form "-foo=bar" with the "-s" on the <#!> line. This has been fixed. See · "tr///" is now threadsafe. Previously it was storing a swash inside its OP, rather than in a pad. · pod2html labels anchors more consistently and handles nested definition lists better. · "threads" cleanup veto has been extended to include "perl_free()" and "perl_destruct()" · On some systems, changes to $ENV{TZ} would not always be respected by the underlying calls to "localtime_r()". Perl now forces the inspection of the environment on these systems. · The special variable $^R is" module. t/comp/fold.t Tests for compile-time constant folding. t/io/pvbm.t Tests incorporated from 5.10.0 which check that there is no unexpected interaction between the internal types "PVBM" and "PVGV". t/lib/proxy_constant_subs.t Tests for the new form of constant subroutines. t/op/attrhand.t Tests for "Attribute::Handlers". t/op/dbm.t Tests for "dbmopen". t/op/inccode-tie.t Calls all tests in t/op/inccode.t after first tying @INC. t/op/incfilter.t Tests for". · "Win32" upgraded to version 0.38. Now has a documented 'WinVista' response from "GetOSName" and support for Vista's privilege elevation in "IsAdminUser". Support for Unicode characters in path names. Improved cygwin and Win64 compatibility. · "Win32API" updated to 0.1001_01 · "killpg()" support added to "MSWin32" (Jan Dubois). · "File::Spec::Win32" upgraded to version 3.2701 OS/2 Updated Modules · "OS2::Process" upgraded to 1.03 Ilya Zakharevich has added and documented several "Window*" and "Clipbrd*" functions. · "OS2::REXX::DLL", "OS2::REXX" updated to version 1.03 VMS Updated Modules · "DCLsym" upgraded to version 1.03 · "Stdio" upgraded to version 2.4 · "VMS::XSSymSet" upgradedoen. perl v5.10.1 2009-05-12 PERL589DELTA(1)[top]