Вы закрываете дескриптор файла внутри цикла while()
.Переместите close(List)
так, чтобы оно находилось за пределами while()
:
while(<List>) {
...
}
close(List);
Редактировать : Я только что заметил, что вы также делаете это в цикле while()
:
open OUTPUT, ">", "$result";
Это приведет к тому, что ваш выходной файл будет перезаписываться каждый раз в цикле, поэтому в нем будут только результаты последней команды.Вы можете переместить open() / close()
вне цикла или открыть файл в режиме добавления:
open OUTPUT, '>>', $result;
Вы также не проверяете, успешно ли open()
;Вы должны поставить or die $!
в конце вашего open()
заявления.