У меня есть утилита командной строки от стороннего производителя (она большая и написана на Java), которую я использую для обработки некоторых данных.Эта утилита ожидает информацию в файле с разделителями строк, а затем выводит обработанные данные в STDOUT.
На моих этапах тестирования я справился с написанием некоторого Perl для создания файла, полного информации для обработки, и последующей отправкой этого файлав эту стороннюю утилиту, но поскольку я близок к запуску этого кода в производство, я действительно предпочел бы просто направить данные в эту утилиту напрямую, а не сначала записывать эти данные в файл, так как это избавило бы меня от необходимостизаписать ненужную информацию на диск.Я недавно спросил на этой плате, как я могу сделать это в Unix, но с тех пор понял, что было бы невероятно удобнее фактически запускать его непосредственно из модуля Perl.Возможно, что-то вроде:
system(bin/someapp do-action --option1 some_value --input $piped_in_data)
В настоящее время я вызываю утилиту следующим образом:
bin/someapp do-action --option1 some_value --input some_file
По сути, я хочу написатьвсе мои данные либо в переменную, либо в STDOUT, а затем направить их в приложение Java через системный вызов в том же самом скрипте Perl или модуле.Это сделало бы мой код более плавным.Без этого мне бы пришлось написать сценарий Perl, который на полпути вызывает bash-файл, а затем, в свою очередь, должен был бы вызвать другой сценарий Perl для подготовки данных.Если бы это было возможно, я бы хотел остаться в Perl до конца.Есть идеи?