perl -wle"for ('00001'..'10000') { print join ' ', ($_) x 20; }" > temp.tmp #### open my $fh, 'temp.tmp' or die $!; # Alternative 1: 40 984 K my @temp = map { "$_\n" } map { split ' ' } <$fh>; # Alternative 2: 29 076 K my @temp = map { split ' ' } <$fh>; $_ .= "\n" for @temp; # Alternative 3: 14 816 K local $_; my @temp; push @temp => map "$_\n", split ' ' while <$fh>;