=head1 NAME
perl593delta - what is new for perl v5.9.3
=head1 DESCRIPTION
This document describes differences between the 5.9.2 and the 5.9.3
development releases. See L, L and
L for the differences between 5.8.0 and 5.9.2.
=head1 Incompatible Changes
=head2 Parsing of C<-f _>
The identifier C<_> is now forced to be a bareword after a filetest
operator. This solves a number of misparsing issues when a global C<_>
subroutine is defined.
=head2 C
C without arguments now defaults to C<$_>.
=head2 Magic goto and eval
The construct C is now disallowed. (Note that the
similar construct, but with C instead, was already forbidden.)
=head2 C<$#> has been removed
The deprecated C<$#> variable (output format for numbers) has been
removed. A new warning, C<$# is no longer supported>, has been added.
=head2 C<:unique>
The C<:unique> attribute has been made a no-op, since its current
implementation was fundamentally flawed and not threadsafe.
=head2 Scoping of the C pragma
The C pragma is now lexically scoped. Its effect used to be global.
=head1 Core Enhancements
=head2 The C pragma
The C pragma is used to enable new syntax that would break Perl's
backwards-compatibility with older releases of the language. It's a lexical
pragma, like C or C.
Currently the following new features are available: C (adds a
switch statement), C<~~> (adds a Perl 6-like smart match operator), C
(adds a C built-in function), and C (adds an C keyword).
Those features are described below.
Note that C low-precedence defined-or operator used to be enabled by
default (although as a weak keyword, meaning that any function would
override it). It's now only recognized when explicitly turned on (and is
then a regular keyword).
Those features, and the C pragma itself, have been contributed by
Robin Houston.
=head2 Switch and Smart Match operator
Perl 5 now has a switch statement. It's available when C