The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# encoding: OldUTF8
# This file is encoded in old UTF-8.
die "This file is not encoded in old UTF-8.\n" if q{あ} ne "\xe3\x81\x82";

use Char;
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より前はそんな挙動だったのかという感じですが、

一応知っておいた方が良さそうです。