diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/utf8.pm | 4 | ||||
-rw-r--r-- | lib/utf8.t | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/utf8.pm b/lib/utf8.pm index 823193b8c1..c1f1680336 100644 --- a/lib/utf8.pm +++ b/lib/utf8.pm @@ -5,7 +5,7 @@ use warnings; our $hint_bits = 0x00800000; -our $VERSION = '1.24'; +our $VERSION = '1.25'; our $AUTOLOAD; sub import { @@ -114,6 +114,8 @@ sequence in the native encoding (Latin-1 or EBCDIC) to UTF-8. The logical character sequence itself is unchanged. If I<$string> is already upgraded, then this is a no-op. Returns the number of octets necessary to represent the string as UTF-8. +Since Perl v5.38, if C<$string> is C<undef> no action is taken; prior to that, +it would be converted to be defined and zero-length. If your code needs to be compatible with versions of perl without C<use feature 'unicode_strings';>, you can force Unicode semantics on diff --git a/lib/utf8.t b/lib/utf8.t index d35110baee..fa69fcbb88 100644 --- a/lib/utf8.t +++ b/lib/utf8.t @@ -669,6 +669,9 @@ for(__PACKAGE__) { eval { utf8::upgrade($_) }; is $@, "", 'no error with utf8::upgrade on read-only COW'; } + +is(utf8::upgrade(undef), undef, "Returns undef for undef input"); # GH #20419 + # This one croaks, but not because the scalar is read-only eval "package \x{100};\n" . <<'END' for(__PACKAGE__) { |