use bimodal_constant FOO => "BAR"; print "\$FOO is $FOO\n" if FOO; #### package bimodal_constant; sub import { my ($class, $key, $value) = @_; my $caller = caller(); # constant scalar eval " *$caller\::$key = \\\"$value\" "; # constant sub eval " *$caller\::$key = sub () { \"$value\" } "; } 1;