use FileHandle; use IPC::Open2; my $pid; eval { $pid = open2(\*OUT, \*IN, 'diskpart'); }; if ($@ and $@ =~ /^open2:/) { die "$@:$!\n"; } print IN "list disk"; close IN; while() { print "$line_no: $_"; $line_no++; } close OUT; exit(0);