use Symbol qw( gensym ); my $old; { no strict 'refs'; $old = \*{ "package::func_name" }; } my $new = gensym; *$new = *$old{$_} foreach ( grep { defined *$old{$_} } qw( SCALAR ARRAY HASH IO FORMAT ) ); { no strict 'refs'; *{ "package::func_name" } = *$new; }