sub f { warn }; $Data::Dumper::Freezer = 'f'; require Data::Dumper; Data::Dumper::Dumper( bless \$_, 'main' ); __END__ Warning: something's wrong at - line 1. #### $Data::Dumper::Freezer = "DD_freezer" unless defined $Data::Dumper::Freezer; *{; do { no strict 'refs'; \*{$Data::Dumper::Freezer} } } = sub { # serialisation code here };