Many applications require that a large set of results be broken down into a smaller set of 'windows', or 'pages' in web language. Array::Window implements an algorithm specifically for dealing with these windows. It is very flexible and permissive, making adjustments to the window as needed.