$ # override in BEGIN block works $ perl -e'BEGIN { *CORE::GLOBAL::sin = sub { "a" } } print sin(0)' a $ # override at runtime doesn't have any effect $ perl -e'*CORE::GLOBAL::sin = sub { "a" }; print sin(0)' 0 $ # using local, still no effect $ perl -e'{ local *CORE::GLOBAL::sin = sub { "a" }; print sin(0) } print sin(0) ' 00