I see you replied to Re: Perl die after executing external program after I posted Re: Perl die after executing external program but did you bother to read what I typed? You're already capturing STDOUT of the process. You also need to capture STDERR, because that's where the output you want goes.
in reply to Re^2: Perl die after executing external program
in thread Perl die after executing external program
Yes, it really is that simple. Differences in account permissions are always a relatively good guess about differences in how programs operate, but a good guess is still a guess. Which file descriptor lftp uses for output doesn't change depending on which account is running the program. Which one you need to capture does change depending on which one is being written to in the executed program.
2>&1 is your friend.