なんでこうなるのかよく分からないので教えてください。

■テスト1
・CORE::GLOBAL::exitは呼ばれず、終了してしまいます。
#!/usr/bin/perl
use strict;
*CORE::GLOBAL::exit = sub {printf "exit(%s)\n",join(",",@_);CORE::exit(@_)};
exit(1);
1;

■テスト2
・事前にSample.pmを作成します。
package Sample;
use strict;
use warnings;
*CORE::GLOBAL::exit = sub {printf "exit(%s)\n",join(",",@_);CORE::exit(@_)};
1;

・CORE::GLOBAL::exitが呼ばれます。
#!/usr/bin/perl
use strict;
*CORE::GLOBAL::exit = sub {printf "exit(%s)\n",join(",",@_);CORE::exit(@_)};
exit(1);
1;

■動作確認環境
This is perl, v5.8.5 built for i386-linux-thread-multi
This is perl, v5.8.8 built for x86_64-linux-thread-multi