При чтении из пустых угловых скобок, <>
, Perl читает из файлов, поставляемых в @ARGV
, если они есть.Но у вас там не было файла: это было имя каталога.
Вы копируете запись в @ARGV
в $directory
, но также оставляете ее в @ARGV
.Затем, далее в вашем коде, my $terminer = <>
пытается прочитать из "файла" (который находится в @ARGV
в качестве каталога).
Исправление может быть либо my $directory = shift @ARGV
, который должен очистить @ARGV
и позволить вам читать ввод с клавиатуры из пустых скобок далее в вашем коде.
Или вы можете написать my $terminer= <STDIN>
, так что Perl будет читать только с клавиатуры, а не изфайлы, перечисленные в массиве @ARGV
.