$self->{tmp_dir_obj} = File::Temp->newdir(CLEANUP => 1);
$self->{tmp_dir} = $self->{tmp_dir_obj}->dirname;
$self->{tmp_file} = File::Spec->catfile($self->{tmp_dir}, $exe_name);
} else {
# Can't use the OO interface if we don't wan't the file to be opened by
# default, but then we have to deal with cleanup ourselves.
$self->{tmp_dir_obj} = File::Temp->newdir(CLEANUP => 1);
$self->{tmp_dir} = $self->{tmp_dir_obj}->dirname;
$self->{tmp_file} = File::Spec->catfile($self->{tmp_dir}, $exe_name);
} else {
# Can't use the OO interface if we don't wan't the file to be opened by
# default, but then we have to deal with cleanup ourselves.