結局、
BEGIN{ $main::PI=3.14 };
my $PI=3.14;
と、2回書いてやれば
main:3.14 req:3.14
となりました

BEGIN ブロックの中で $main::PI を定義していても、
my $PI=3.14; を書かなければエラーになるのが少し不思議な気がします。