#!/usr/bin/perl -w use strict; my $file = shift; my $cases = shift || 16; my @filedata; my $txt; my $j = 0; open ( DATA, $file ) || warn "Cannot read $file: $!\n"; binmode ( DATA ); { local $/ = "\n---\n"; @filedata = ; } close(DATA); for (my $i = 0; $i < $#filedata; $i++) { if($i && (($i%$cases == 0) || $i == $#filedata-1)) { $j++; open(OUT, "> ".$file.sprintf(".%02d",$j)); print OUT $txt; close OUT; $txt=''; } $txt.=$filedata[$i]; }