This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: Add, subtract some C<> S<> F<>
authorKarl Williamson <khw@cpan.org>
Mon, 18 May 2015 14:35:56 +0000 (08:35 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 20 May 2015 04:03:08 +0000 (22:03 -0600)
pod/perldelta.pod

index f2371d2..a261f88 100644 (file)
@@ -135,8 +135,8 @@ perhaps the most useful idiom this feature provides:
 
     foreach \%hash (@array_of_hash_refs) { ... }
 
-This feature is experimental and must be enabled via C<use feature
-'refaliasing'>.  It will warn unless the C<experimental::refaliasing>
+This feature is experimental and must be enabled via S<C<use feature
+'refaliasing'>>.  It will warn unless the C<experimental::refaliasing>
 warnings category is disabled.
 
 See L<perlref/Assigning to References>
@@ -194,8 +194,8 @@ as the left-hand side is a valid lvalue.  This allows S<C<(undef,undef,$foo)
 
 Floating point values are able to hold the special values infinity, negative
 infinity, and NaN (not-a-number).  Now we more robustly recognize and
-propagate the value in computations, and on output normalize them to C<Inf>,
-C<-Inf>, or C<NaN>.
+propagate the value in computations, and on output normalize them to
+an infinite value or not-a-number.
 
 See also the L<POSIX> enhancements.
 
@@ -205,7 +205,7 @@ Parsing and printing of floating point values has been improved.
 
 As a completely new feature, hexadecimal floating point literals
 (like C<0x1.23p-4>)  are now supported, and they can be output with
-C<printf "%a">. See L<perldata/Scalar value constructors> for more
+S<C<printf "%a">>. See L<perldata/Scalar value constructors> for more
 details.
 
 =head2 Packing infinity or not-a-number into a character is now fatal
@@ -292,12 +292,12 @@ unrelated modules that are included in the same program.
 List slices now return an empty list only if the original list was empty
 (or if there are no indices).  Formerly, a list slice would return an empty
 list if all indices fell outside the original list; now it returns a list
-of undef values in that case.
+of C<undef> values in that case.
 L<[perl #114498]|https://rt.perl.org/Ticket/Display.html?id=114498>.
 
 =head2 C<\N{}> with a sequence of multiple spaces is now a fatal error
 
-E.g. C<\N{TOO  MANY SPACES}> or C<\N{TRAILING SPACE }>.
+E.g. S<C<\N{TOOE<nbsp>E<nbsp>MANY SPACES}>> or S<C<\N{TRAILING SPACE }>>.
 This has been deprecated since v5.18.
 
 =head2 S<C<use UNIVERSAL '...'>> is now a fatal error
@@ -444,7 +444,7 @@ subroutine, capturing the value of C<$var> at the time the C<sub> expression
 is evaluated.  This can break the closure behaviour in those cases where
 C<$var> is subsequently modified, since the subroutine won't return the
 changed value. (Note that this all only applies to anonymous subroutines
-with an empty prototype (C<sub ()>).)
+with an empty prototype (S<C<sub ()>>).)
 
 This usage is now deprecated in those cases where the variable could be
 modified elsewhere.  Perl detects those cases and emits a deprecation
@@ -584,7 +584,7 @@ optimisation happens almost all the time.
 =item *
 
 C<join> is now subject to constant folding.  So for example
-C<join "-", "a", "b"> is converted at compile-time to C<"a-b">.
+S<C<join "-", "a", "b">> is converted at compile-time to C<"a-b">.
 Moreover, C<join> with a scalar or constant for the separator and a
 single-item list to join is simplified to a stringification, and the
 separator doesn't even get evaluated.
@@ -1299,7 +1299,7 @@ L<Non-finite repeat count does nothing|perldiag/"Non-finite repeat count does no
 
 (W numeric) You tried to execute the
 L<C<x>|perlop/Multiplicative Operators> repetition operator C<Inf> (or
-C<-Inf>) or C<NaN> times, which doesn't make sense.
+C<-Inf>) or NaN times, which doesn't make sense.
 
 =item *
 
@@ -1518,11 +1518,11 @@ operation would mix Unicode and locale rules, which likely conflict.
 
 L<Missing or undefined argument to require|perldiag/Missing or undefined argument to require>
 
-(F) You tried to call require with no argument or with an undefined
-value as an argument.  Require expects either a package name or a
+(F) You tried to call C<require> with no argument or with an undefined
+value as an argument.  C<require> expects either a package name or a
 file-specification as an argument.  See L<perlfunc/require>.
 
-Formerly, C<require> with no argument or undef warned about a Null filename.
+Formerly, C<require> with no argument or C<undef> warned about a Null filename.
 
 =back
 
@@ -1909,7 +1909,7 @@ C<%I64d> is now being used instead of C<%lld> for MinGW.
 =item *
 
 In the experimental C<:win32> layer, a crash in C<open> was fixed. Also
-opening C</dev/null> (which works under Win32 Perl's default C<:unix>
+opening F</dev/null> (which works under Win32 Perl's default C<:unix>
 layer) was implemented for C<:win32>.
 L<[perl #122224]|https://rt.perl.org/Ticket/Display.html?id=122224>
 
@@ -2192,7 +2192,7 @@ changed.  Use this function to do so, before returning to Perl.
 The defines and labels for the flags in the C<op_private> field of OPs are now
 auto-generated from data in F<regen/op_private>.  The noticeable effect of this
 is that some of the flag output of C<Concise> might differ slightly, and the
-flag output of C<perl -Dx> may differ considerably (they both use the same set
+flag output of S<C<perl -Dx>> may differ considerably (they both use the same set
 of labels now).  Also, debugging builds now have a new assertion in
 C<op_free()> to ensure that the op doesn't have any unrecognized flags set in
 C<op_private>.
@@ -2379,7 +2379,7 @@ the POSIX class was negated: C<[:^ascii:]>.  This is now fixed.
 
 =item *
 
-Perl 5.14.0 introduced a bug whereby C<eval { LABEL: }> would crash.  This
+Perl 5.14.0 introduced a bug whereby S<C<eval { LABEL: }>> would crash.  This
 has been fixed.
 L<[perl #123652]|https://rt.perl.org/Ticket/Display.html?id=123652>.
 
@@ -2459,8 +2459,8 @@ both been fixed to extend the stack first.
 =item *
 
 C<prototype()> with no arguments used to read the previous item on the
-stack, so C<print "foo", prototype()> would print foo's prototype.  It has
-been fixed to infer C<$_> instead.
+stack, so S<C<print "foo", prototype()>> would print foo's prototype.
+It has been fixed to infer C<$_> instead.
 L<[perl #123514]|https://rt.perl.org/Ticket/Display.html?id=123514>.
 
 =item *
@@ -2491,9 +2491,9 @@ L<[perl #123542]|https://rt.perl.org/Ticket/Display.html?id=123542>.
 =item *
 
 Fix a couple of string grow size calculation overflows; in particular,
-a repeat expression like C<33 x ~3> could cause a large buffer
+a repeat expression like S<C<33 x ~3>> could cause a large buffer
 overflow since the new output buffer size was not correctly handled by
-SvGROW().  An expression like this now properly produces a memory wrap
+C<SvGROW()>.  An expression like this now properly produces a memory wrap
 panic.
 L<[perl #123554]|https://rt.perl.org/Ticket/Display.html?id=123554>.
 
@@ -2655,7 +2655,7 @@ contrary to the documentation,  Now C<return> always prevents inlining.
 On some systems, such as VMS, C<crypt> can return a non-ASCII string.  If a
 scalar assigned to had contained a UTF-8 string previously, then C<crypt>
 would not turn off the UTF-8 flag, thus corrupting the return value.  This
-would happen with C<$lexical = crypt ...>.
+would happen with S<C<$lexical = crypt ...>>.
 
 =item *
 
@@ -2767,7 +2767,7 @@ L<[perl #122171]|https://rt.perl.org/Ticket/Display.html?id=122171>.
 
 =item *
 
-Failing to compile C<use Foo> in an eval could leave a spurious
+Failing to compile C<use Foo> in an C<eval> could leave a spurious
 C<BEGIN> subroutine definition, which would produce a "Subroutine
 BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
 block.
@@ -2932,7 +2932,7 @@ routine.
 
 =item *
 
-Aliasing (e.g., via C<*x = *y>) could confuse list assignments that mention the
+Aliasing (e.g., via S<C<*x = *y>>) could confuse list assignments that mention the
 two names for the same variable on either side, causing wrong values to be
 assigned.
 L<[perl #15667]|https://rt.perl.org/Ticket/Display.html?id=15667>
@@ -2946,10 +2946,10 @@ ago.
 
 =item *
 
-An optimization in C<split> to treat C<split /^/> like C<split /^/m> had the
-unfortunate side-effect of also treating C<split /\A/> like C<split /^/m>,
-which it should not.  This has been fixed.  (Note, however, that C<split /^x/>
-does not behave like C<split /^x/m>, which is also considered to be a bug and
+An optimization in C<split> to treat S<C<split /^/>> like S<C<split /^/m>> had the
+unfortunate side-effect of also treating S<C<split /\A/>> like S<C<split /^/m>>,
+which it should not.  This has been fixed.  (Note, however, that S<C<split /^x/>>
+does not behave like S<C<split /^x/m>>, which is also considered to be a bug and
 will be fixed in a future version.)
 L<[perl #122761]|https://rt.perl.org/Ticket/Display.html?id=122761>
 
@@ -2984,7 +2984,7 @@ C<$y> have been aliased by C<foreach>.
 =item *
 
 Some patterns including code blocks with syntax errors, such as
-C</ (?{(^{})/>, would hang or fail assertions on debugging builds.  Now
+S<C</ (?{(^{})/>>, would hang or fail assertions on debugging builds.  Now
 they produce errors.
 
 =item *