Perl 5 version 8.3 documentation



perl573delta - what's new for perl v5.7.3


This document describes differences between the 5.7.2 release and the 5.7.3 release.

(To view the differences between the 5.6.0 release and the 5.7.0 release, see perl570delta. To view the differences between the 5.7.0 release and the 5.7.1 release, see perl571delta. To view the differences between the 5.7.1 release and the 5.7.2 release, see perl572delta.)


This is just a selected list of some of the more notable changes. The numbers refer to the Perl repository change numbers; see Changes58 (or Changes in Perl 5.8.1). In addition to these changes, lots of work took place in integrating threads, PerlIO, and Unicode; general code cleanup; and last but not least porting to non-UNIX lands such as Win32, VMS, Cygwin, DJGPP, VOS, MacOS Classic, and EBCDIC.

  • add LC_MESSAGES to POSIX :locale_h export tag

  • add DEL to [:cntrl:]

  • make h2ph understand constants like 1234L and 5678LL

  • Win32: fix bugs in handling of the virtualized environment

  • fix a bug in the security taint checking of open()

  • make perl fork() safe even on platforms that don't have pthread_atfork()

  • make switching optimization and debugging levels during Perl builds easier via the OPTIMIZE environment variable

  • make split()'s unused captures to be undef, not ''

  • Search::Dict: allow transforming lines before comparing

  • allow installing extra modules or bundles when building Perl

  • add -Wall in cflags when compiling with gcc to weed out dubious C practices

  • pluggable optimizer

  • WinCE: integrate the port

  • Win32: 4-arg select was broken

  • introduce the perlivp utility for verifying the Perl installation (IVP = Installation Verification Procedure)

  • rename lib/unicode to lib/unicore to avoid case-insensitivity problems with lib/Unicode

  • remove Time::Piece

  • document that use utf8 is not the right way most of the time

  • allow builing perl with -DUSE_UTF8_SCRIPTS which makes UTF-8 the default script encoding (not the default since that would break all scripts having legacy eight-bit data in them)

  • division preserving 64-bit integers

  • document the coderef-in-@INC feature

  • modulo (%) preserving 64-bit integers

  • update to Unicode 3.1.1

  • add the \[$@%&*] prototype support

  • oct() and hex() in glorious 64 bit

  • Class::Struct: allow recursive classes

  • fix unpack U to be the reverse of pack U

  • VMS: waitpid enhancements

  • unpack("Z*Z*", pack("Z*Z*", ..)) was broken

  • Devel::Peek: display UTF-8 SVs also also as \x{...}

  • Data::Dumper: option to sort hashes

  • add perlpodspec

  • threadsafe DynaLoader, re, Opcode, File::Glob, and B

  • support BeOS better

  • read-only hashes (user-level interface is Hash::Util)

  • add Devel::PPPort

  • add the sort pragma

  • VMS: fix perl -P

  • add perlpacktut

  • SUPER-UX: add hints file

  • Win32: non-blocking waitpid(-1,WNOHANG)

  • introduce the -t option for gentler taint checking

  • add the if pragma

  • implement IV/UV/NV/long double un/packing with j/J/F/D

  • document the new taint behaviour of exec LIST and system LIST

  • Reporting Bugs

    If you find what you think is a bug, you might check the articles recently posted to the comp.lang.perl.misc newsgroup and the perl bug database at There may also be information at, the Perl Home Page.

    If you believe you have an unreported bug, please run the perlbug program included with your release. Be sure to trim your bug down to a tiny but sufficient test case. Your bug report, along with the output of perl -V , will be sent off to to be analysed by the Perl porting team.


    The Changes file for exhaustive details on what changed.

    The INSTALL file for how to build Perl.

    The README file for general stuff.

    The Artistic and Copying files for copyright information.


    Written by Jarkko Hietaniemi <>, with many contributions from The Perl Porters and Perl Users submitting feedback and patches.

    Send omissions or corrections to <>.