use warnings; use strict; open(my $out, ">", shift(@ARGV) ) or die $!; my $buffer_length = 16_384; while( my $file = shift(@ARGV) ) { open(my $fh, $file) or die $!; while( read($fh, my $buffer, $buffer_length) ) { print $out $buffer or die $!; } close $fh; } close $out or die $!;