sub TempDisableService { my $code = shift; my $original_state = Module::GetServiceState(); Module::SetServiceState(0); # temporarily disable the service, if it's not already $code->(); Module::SetStatus($original_state); return; } # and later... TempDisableService sub { $object->DoSomething(); $object->DoSomethingElse(); }; # and even later... TempDisableService sub { $object->DoSomethingMore(); $object->DoSomethingAlso(); };