TODOs
nearest returns array based on context
scan_file takes binmode => 'binmode" i.e. ':utf8' etc