#!/usr/bin/perl my $TEST = "foo"; if ( defined &{$TEST->test_sub} ) { } __END__ Can't locate object method "test_sub" via package "foo" (perhaps you forgot to load "foo"?) at ./798474.pl line 4. --- #!/usr/bin/perl my $TEST = "foo"; if ( defined &{$TEST->test_sub} ) { } package foo; sub test_sub { print "hi\n" } __END__ hi