Wide character対策

手抜き方法


$ sudo vi /System/Library/Perl/5.12/darwin-thread-multi-2level/IO/Handle.pm

460 sub syswrite {
461     @_ >= 2 && @_ <= 4 or croak 'usage: $io->syswrite(BUF [, LEN [, OFFSET]])';
462     if (defined($_[2])) {
463         syswrite($_[0], $_[1], $_[2], $_[3] || 0);
464     } else {
465         #use utf8;                                                                                                                                            
466         use Encode qw/encode decode/;
467         #syswrite($_[0], $_[1]);
468         syswrite($_[0], utf8::is_utf8($_[1]) ? encode('utf-8', $_[1]) : $_[1]);
469     }
470 }


$ sudo vi /Library/Perl/Updates/5.12.3/Test/Builder.pm

1740 sub _print_to_fh {
1741     my( $self, $fh, @msgs ) = @_;
1742 
1743     # Prevent printing headers when only compiling.  Mostly for when
1744     # tests are deparsed with B::Deparse                                                                                                                     
1745     return if $^C;
1746 
1747     my $msg = join '', @msgs;
1748     my $indent = $self->_indent;
1749 
1750     local( $\, $", $, ) = ( undef, ' ', '' );
1751 
1752     # Escape each line after the first with a # so we don't
1753     # confuse Test::Harness.
1754     $msg =~ s{\n(?!\z)}{\n$indent# }sg;
1755 
1756     # Stick a newline on the end if it needs it.
1757     $msg .= "\n" unless $msg =~ /\n\z/;
1758 
1759     use Encode qw/encode/;
1760     $msg = utf8::is_utf8($msg) ? encode('utf-8', $msg) : $msg;
1761 
1762     return print $fh $indent, $msg;
1763 }