use Tie::File; my $file = '/path/to/large.file'; my (@array_1, @array_2); tie my @array,'Tie::File',$file or die $!; my $index = int(scalar(@array) / 2); @array_1 = @array[0..$index]; @array_2 = @array[$index+1..$#array]; untie @array;