my $rv; if (!eval { $rv = $doomsday_weapon->$method(@args); 1 }) { die("Doomsday weapon failed: $@\n"); } #### my $method_ref = $doomsday_weapon->can($method) or die("Method $method not supported by this doomsday weapon\n"); $method(@args); 1 }) { die("Doomsday weapon failed: $@\n"); } my $rv = $doomsday_weapon->$method_ref(@args);