Вы пытаетесь выполнять чтение и запись для файлового дескриптора RSPS
, хотя вы открыли его только для записи (open RSPS, '|java -jar JARFILE.jar'
означает запуск процесса Java и использование файлового дескриптора RSPS
для записи в стандартный ввод процесс Java).
Чтобы прочитать выходные данные процесса, вам нужно либо записать выходные данные процесса в файл и открыть отдельный дескриптор файла для этого файла
open RSPS, '| java -jar JARFILE.jar > jarfile.out';
open PROC_OUTPUT, '<', 'jarfile.out';
или проверьте модуль типа IPC::Open3
, который был сделан для таких приложений.
use IPC::Open3;
# write to RSPS and read from PROC_OUTPUT and PROC_ERROR
open3(\*RSPS, \*PROC_OUTPUT, \*PROC_ERROR,
'java -jar JARFILE.jar');