open my $fhA, '<', '1.dat' or die $!; open my $fhB, '<', '2.dat' or die $!; while (my $lineA=<$fhA>){ seek $fhB, 0, 0; while(my $lineB=<$fhB>){ print $lineA,' ', $lineB; } } #### open $fhA, '<', '1.dat' or die $!; open $fhB, '<', '2.dat' or die $!; @B_lines = <$fhB>; while (my $lineA=<$fhA>){ for my $lineB (@B_lines) { print $lineA,' ', $lineB; } }