use IPC::Open3; sub backticks { my $pid = open3(my $wfh, my $rfh, 0, @_) or die "open3 failed: $!"; close($wfh); # assume the script needs no input my $output; while (<$rfh>) { $output .= $_ } close($rfh); $output; } my $java_output = backticks('java', '--classpath=...', ...);