$linectr=0; $ctr2=0; for $line (@array){ $hash{$linectr}=$line; if($ctr2=100000){ addtofile(\%hash); %hash=(); $ctr2 = 0; } $ctr2++; $linectr++; } sub addtofile { my $hashref = shift; open(FH,$tempfile); foreach $value (keys %$hashref) { print FH "$$hashref{$value}:$value\n"; } close FH; }