# encoding: Cyrillic # This file is encoded in Cyrillic. die "This file is not encoded in Cyrillic.\n" if q{あ} ne "\x82\xa0"; use Cyrillic; print "1..2\n"; my $__FILE__ = __FILE__; my $input = ' My name is Yamada Taro'; my $space = ' '; my $a = join '_', split $space, $input; if ($a eq 'My_name_is_Yamada_Taro') { print qq{ok - 1 $^X $__FILE__\n}; } else { print qq{not ok - 1 $^X $__FILE__\n}; } my $b = join '_', split ' ', $input; if ($b eq 'My_name_is_Yamada_Taro') { print qq{ok - 2 $^X $__FILE__\n}; } else { print qq{not ok - 2 $^X $__FILE__\n}; } __END__ http://d.hatena.ne.jp/syohex/20130613/1371103504 変更点 splitの第一引数に空白一つの文字列リテラルを与えたときと 空白一つが代入された変数を指定したときの挙動が今まで違って いたのが同じになったようです。 Perl 5.16.3での結果 a = __My_name_is_Yamada_Taro b = My_name_is_Yamada_Taro Perl 5.18.0での結果 a = My_name_is_Yamada_Taro b = My_name_is_Yamada_Taro むしろ 5.18.0より前はそんな挙動だったのかという感じですが、 一応知っておいた方が良さそうです。