There's also IPC::Open3, which often goes unmentioned, but has the added benefit of being able to do reading, writing, and error handling. This means it has access to STDIN, STDOUT, and STDERR.
Please don't use `backticks` to get system commands to return information you need. You will most-certainly find yourself bitten by that one at some point.