PERL IS BROKEN AGAIN! use warnings; use Carp; $SIG{__WARN__} = \&Carp::cluck; sub Funny::guy { my $whoami = (caller(0))[3]; print("$whoami: where is my $x?\n"); } *snagglepuss = \&Funny::guy; snagglepuss(); no warnings 'redefine'; *snagglepuss = sub { my $whoami = (caller(0))[3]; print("$whoami: where is my $x?\n"); }; snagglepuss(); Look at this: Use of uninitialized value in concatenation (.) at /tmp/a line 7. Funny::guy() called at /tmp/a line 12 Use of uninitialized value in concatenation (.) at /tmp/a line 17. main::__ANON__() called at /tmp/a line 20 Funny::guy: where is my ? main::__ANON__: where is my ? Where is snagglepuss? I called it twice! Perl is lying to me. Snivelling suckatush. --tom