This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
The formatting function of Carp::Heavy has problem with utf8 strings.
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>
Wed, 7 Sep 2005 11:09:10 +0000 (11:09 +0000)
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>
Wed, 7 Sep 2005 11:09:10 +0000 (11:09 +0000)
Work around it.

p4raw-id: //depot/perl@25363

lib/Carp/Heavy.pm

index 0180dcf..79aa5f8 100644 (file)
@@ -116,9 +116,10 @@ sub format_arg {
   $arg = "'$arg'" unless $arg =~ /^-?[\d.]+\z/;
 
   # The following handling of "control chars" is direct from
-  # the original code - I think it is broken on Unicode though.
+  # the original code - it is broken on Unicode though.
   # Suggestions?
-  $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg;
+  utf8::is_utf8($arg)
+    or $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg;
   return $arg;
 }