##
if (__PACKAGE__->can('example')) {...}
##
##
package SomeThing;
use Exporter;
BEGIN {
if (eval "require MyOptional; 1;") {
MyOptional->import('foo');
}
else {
*foo = sub { # fallback code here. };
}
}
use parent 'Exporter';
our @EXPORT = qw(foo);
1;
package main;
use SomeThing;
foo();