eval { $yaml_class->import( 'Dump'); 1; } or croak( "Can't find Dump in $yaml_class\n" ); #### Package::Stash->new( $yaml_class )->has_symbol( '&Dump' ) or croak( "Can't find Dump in $yaml_class\n" ); #### my $Dump = $yaml_class . "::Dump"; [... later in the code ...] my $var = eval { &$Dump(...) } or croak( "bad return or Dump not implemented\n" );