in reply to Check for another program availability
The core module IPC::CMD has a can_run function that appears to do what you want. And it claims to be "platform independent".
IPC::Cmd considered harmful may be of interest.
Results (68 votes). Check out past polls.