my $no_go; BEGIN { eval { require Maybe::Module }; if ( $@ ) { $no_go = 1 } } sub my_function { print "I'm the normal definition"; } # ... if ( $no_go ) { # safe definition *my_function = sub { carp "Function not available without Maybe::Module" }; } 1;