Perl закрывает трубу без ошибок

Я использую Perl для выполнения внешней программы и хотел бы завершить ее выполнение, если он возвращает определенную строку во время работы. Приведенный ниже код прерывает выполнение по желанию, однако при выполнении последней строки (close) возвращается сообщение об ошибке.

open (my $out, "-|", "usfos $memory<input-$cpu.scr");
while (<$out>) {
    if ($_ =~ /MIN   STEP  LENGTH/) {
        last;
    }
}
close $out;

Это часть ошибки, которая печатается (внешняя программа также возвращает сообщения об ошибках):

...forrtl: The pipe is being closed.
forrtl: severe (38): error during write, unit 6, file CONOUT$

Так что я думаю, что это потому, что Perl пытается писать в закрытую ручку. Как я могу избежать печати чего-либо?

Ответы на вопрос(1)

Ваш ответ на вопрос