use Capture::Tiny qw' capture_merged '; my $log = 'myUnified.log' ; open my($fh), '>', $log or die $^E; print $fh capture_merged { system qw[ cpan install ... ]; }; close $fh; system 1, 'notepad.exe', $log;