my $chunksize = 500 * 1024; # 500Kb my $filenumber = 0; my $infile = "infile.dat"; my $outsize = 0; my $eof = 0; open INFILE, $infile; open OUTFILE, ">outfile_".$filenumber.".dat"; while() { chomp; $outsize++; if( $outsize>$chunksize and /^.{67}11/ ) { close OUTFILE; $outsize = 0; $filenumber++; open (OUTFILE, ">outfile_".$filenumber.".dat") or die "Can't open outfile_".$filenumber.".dat"; } print OUTFILE "$_\n"; $outsize += length; } close INFILE;