in reply to Windows/Cygwin and open2
<FILE>, in a list context (as in your code) means read all lines in the file, until the EOF is reach. (As far as I know) EOF isn't reached as long as primer3_core.exe is running. Maybe you want $result = <Reader>?