Marius van Witzenburg "Learned my lesson in life, now setting my action to stay in life."

7Jun/100

How to use the exec() and system() function and capture the returned output.

When you want to execute a program you sometimes want to use the result of the program you executed.

exec(PROGRAM);
$result = system(PROGRAM);

Both Perl's exec() function and system() function execute a system shell command. The big difference is that system() creates a fork process and waits to see if the command succeeds or fails - returning a value. exec() does not return anything, it simply executes the command. Neither of these commands should be used to capture the output of a system call. If your goal is to capture output, you should use the backtick operator:

$result = `PROGRAM`;

Found this information in a post by Kirk Brown.