You do realize that ack's filetype detection is A) nothing at all related to MIME::Type, and B) entirely based on user-created rules, right? ack ships with sensible defaults, but they're still user-defined rules.
If it's File::Find that you are fighting with, then why not take a look at File::Next, which is the underlying file-finding engine that ack uses?
When I asked about use cases, I should have been more clear: Have you actually written code where you shell out to ack to get filenames? Or had it give you search results? What did you do with the search results then?
Is it too obvious? Too useful?
I don't understand what you're asking here.
If you'd really like to get some traction on some sort of ack API, please go create a ticket in the GitHub issue tracker at https://github.com/petdance/ack2/