Splitting up the .module file
You can enter a file parameter in the hook_menu function and the file will be included before calling the page callback function.

&lt;?php
function my_module_menu() {
  $items = array();
  $items['my/custom/path'] = array(
    'title' =&gt; 'My title',
    'page callback' =&gt; 'my_function',
    ...
    'file' =&gt; 'my_module.pages.inc',
  );
  return $items;
}


Now, you can place your my_function in the my_module.pages.inc file. 
You can place submit and validate handlers (forms) in this page as well. 

files[] = my_module.pages.inc


will not work. It's to autoload classes. A good example would be Views file includes.