Аргументы вызова

Формально оператор <> не просматривает аргументы вызова – он работает с массивом @ARGV. Это специальный массив, который интерпретатор Perl заполняет аргументами вызова. Иначе говоря, он во всем похож на обычные массивы (если не считать прописных букв в имени), но при запуске программы @ARGV уже содержит список всех аргументов вызова. С @ARGV можно выполнять те же операции, что и с любым другим массивом; например, вы можете извлекать из него элементы вызовом shift или перебирать их в цикле foreach. Вы даже можете проверить, не начинаются ли какие-либо аргументы с дефиса, чтобы обработать их как ключи вызова (как, например, поступает сам Perl с ключом вызова –w).

Оператор <> обращается к @ARGV, чтобы определить, какие имена файлов он должен использовать. Обнаружив там пустой список, он использует стандартный поток ввода; в противном случае используется список найденных файлов. Это означает, что после запуска программы, но перед первым использованием @ARGV можно изменить содержимое @ARGV. Например, следующая программа всегда обрабатывает три конкретных файла независимо от того, что пользователь ввел в командной строке:

@ARGV = qw# larry moe curly #; # Принудительное чтение трех файлов
while (<>) {
chomp;
print "It was $_ that I saw in some stooge-like file!\n";
}

Теги:
ввод, вывод
Добавлено: 20 Июля 2018 08:14:35 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...