package A; use strict; use constant VALUE => 1; sub func { print "Constant is ", VALUE, "\n"; } package main; use strict; no strict 'refs'; *{"A::VALUE"} = sub () { 2 }; A->func();