in reply to how do i read input from Unix command

To add to Zaxo's answer, you can read the output linewise into an array as well: my @cmd_lines = `ud < CoreCust.ud`; Maybe you have to redirect STDERR, if this is where the command sends its output to. How to do this depends on your shell, on bash you'd write e.g. ud < CoreCust.ud 2>&1 to redirect STDERR to STDOUT. This should work both with backticks and with your open-pipe solution.