exec(ПРОГРАММА);
$result = система(ПРОГРАММА);
И функция Perl exec(), и функция system() выполняют команду системной оболочки.
Большая разница заключается в том, что
system() создает процесс ответвления и ожидает, успешно ли выполнена команда, — возвращая значение.
exec() ничего не возвращает, она просто выполняет команду.
Ни одну из этих команд нельзя использовать для захвата вывода системного вызова.
Если вашей целью является захват вывода, вы должны использовать оператор обратной кавычки:
$result = `PROGRAM`;