use strict; use warnings; $/ = \20_000_000; #I've just split a 20-meg file open my $f1, "<", '1' or die $!; # piece 1 is named 1 binmode $f1; open my $f2, "<", '2' or die $!; # piece 2 is named 2 binmode $f2; while(my $x = <$f1>){ while(my $y = <$f2>){ open my $out, ">", "outfile" or die $!; binmode $out; print $out $x.$y; } } #### use strict; use warnings; $/ = \20_000_000; #I've just split a 20-meg file into 2 pieces open my $f1, "<", '1' or die $!; piece 1 is named 1 binmode $f1; open my $f2, "<", '2' or die $!; # piece 2 is named 2 binmode $f2; while(defined(my $x = <$f1>) && (my $y = <$f2>)){ open my $out, ">", "outfile" or die $!; binmode $out; print $out $x.$y; }