use Data::Dumper; use IO::Handle STDOUT->autoflush; ...upload file, etc... alignSequences("$upload_dir/$filename","$upload_dir/$filename.out"); sub alignSequences { my $filename = shift; my $fileout = shift; open(MSA,"/usr/local/bin/mafft --auto 2>&1 $filename 1> $fileout |") or die "MSA failed: $!\n"; # Redirect STDOUT to a file and STDERR to STDOUT while ( ) { print OUTFILE Dumper($_); # When I print to Dumper, everything with a \r is part of the same $VAR print statement } close MSA; }