- $self->{tmp_file_obj} = File::Temp->new(UNLINK => 1);
- $self->{tmp_file} = $self->{tmp_file_obj}->filename;
+ # 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.
+ my %args = (
+ TEMPLATE => 'fakevgXXXX',
+ TMPDIR => 1,
+ CLEANUP => 0,
+ OPEN => 0,
+ );
+ $args{SUFFIX} = $exe_ext if length $exe_ext;
+ my $tmp_file = do {
+ local $^W = 0;
+ (File::Temp::tempfile(%args))[1]
+ };
+ $self->{tmp_file} = $tmp_file;