use vars qw( %forbidden ); sub import { my ($self,@forbidden_modules) = @_; scrub( $module ) for @forbidden_modules; unshift @INC, sub { my (undef,$filename,undef) = @_; if (exists $forbidden{$filename}) { # return faked, failing module }; }; };