use IPC::Open3 qw( open3 ); { open(local *CHILD_STDIN, '<', '/dev/null') or die; open(local *CHILD_STDERR, '>', '/dev/null') or die; local *FROM_CHILD; my $kid = open3('CHILD_STDERR', 'java', 'JavaApp' ); ... }