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 }