my ($coderef, $filename) = @_; my $result; @INC = grep {$_ ne $self->{__connector}} @INC; require $filename; # try to overwrite a method here unshift @INC, $self->{__connector}; #### *setScript = *IWL::Script::setScript; delete $::{'IWL::'}{'Script::'}{'setScript'}; no warnings qw(redefine); sub IWL::Script::setScript { my ($self, $param) = @_; if (ref $param eq 'CODE') { *setScript{CODE}->($self, $p2js->covert($param)); } else { *setScript{CODE}->($self, $param); } }