> Are you sure that your "mrule" tokens are grouped ?
Yes, I am sure the "mrule" tokens are grouped ,
You would not see something like this
mpg=1 mrule=140 reg=7989 score=10625 rank=0 perc=100 mp_demand=100
mpg=2 mrule=140 reg=7989 score=10625 rank=0 perc=100 mp_demand=40
mpg=3 mrule=150 reg=7989 score=0 rank=0 perc=100 mp_demand=20
mpg=4 mrule=150 reg=7989 score=10625 rank=0 perc=100 mp_demand=40
mpg=3 mrule=140 reg=7989 score=0 rank=0 perc=100 mp_demand=20
That is, we would not see a line with "mrule=140" repeat before and after a different maprule.
I tried running your code, but probably it is hitting the file limit. After creating 252 files, I get an error as
bos-mp96h:~ jvx$ ./partition_file.pl asgn.txt
Can't write to '00000021.log': Too many open files
bos-mp96h:~ jvx$ ls -ltr | grep 'log' | wc -l
252