Think about Loose Coupling  
PerlMonks 
Comment on 
( #3333=superdoc: print w/ replies, xml )  Need Help?? 
The ranges are given in biological coordinates, meaning the first coordinate is 1 (0 is illegal) and max_length is a legal coordinate. So, if max_length=10 then our coordinates are in 1..10 (both inclusive). Also note that a range like [2,4] expands to2,3,4 since both start and end are inclusive.
This convention always causes some trouble, and most of the time I use to convert the coordinates at the beginning and at the end so I can work with 0based coordinates. In this case I didn't since it's quite simple, so I'm working with biological coordinates. Anyway, if we now take your example and arbitrarily replace all 0's with 1's we get:
Now, [1,3] returns 5; since only the first two and last three ranges contain it. [1,4] returns 4; since only the first two and last two ranges contain it. I hope it makes sense now In reply to Re^2: Serializing a large object
by daverave

