my $bufsize = 256 * 1024; sysopen my $in1, 'somefile', O_RDONLY; sysopen my $in2, 'someother', O_RDONLY; sysopen my $out, 'outputfile', O_WRONLY|O_CREAT|O_TRUNC; binmode($in1); # Is this necessary? binmode($in2); binmode($out); while (sysread($in1, my $buf1, $bufsize) && sysread($in2, my $buf2, $bufsize)) { my $data = ; # HOW? syswrite $out, $data, 2 * $bufsize; }