my $filesize_in_MB=0; my $file_size_compare=100; my $filename; my $filesize; my $block_size=131072; my $file_size_sorted= -s $file_sorted; my $file_size_sorted_MB=$file_size_sorted/(1024*1024); my $buffer; my $count=15; open FH_sort, "$file_sorted"; for (my $i=1;$i <= $count;$i++) { while($filesize_in_MB <= $file_size_compare) { my $rv=read(FH_sort,$buffer,$block_size); #or die "$?"; #my $rv=read(FH_sort,$buffer,$block_size,O_APPEND ); #or die "$?"; #print $rv; if (!eof(FH_sort) && ($rv <= $block_size)) { open FH_split, ">>sort_split$i" or die "$!"; print FH_split $buffer; $filename="sort_split$i"; $filesize= -s $filename; $filesize_in_MB=$filesize/(1024*1024); close FH_split; } else { open FH_split, ">>sort_split$i" or die "$!"; print FH_split $buffer; close FH_split; last; } } $filesize_in_MB=0; } close FH_sort;