The builtin system does not return the text that the called program writes to standard output. For that you should use the backtick operator (``). But I have a question for you. Why call one Perl program from another as a separate process? Why not just modify the called program to have a subroutine return a value instead of printing it out and then make it a module?