» язык
perl
» Главная
страница
» Вернуться
к содержанию ( Perl )
Операторы
ввода-вывода
В
Perl существует несколько операторов
ввода-вывода. Первый это скобки
из символа “`” — акцента. Строка
в этих скобках воспринимается
как системная команда и результат
ее действия возвращается как
“псевдо” литерал. В скалярном
контексте это строка содержащая
весь результат, а в списковом
— список, элементы которого
— строки результата. Статус
выполненной команды хранится
в переменной $?.
Следующая
команда ввода вывода выглядит
как <файл>. Вычисление
<файл> приводит к чтению
строки из файла. Обратите внимание,
что “файл” здесь не имя файла,
а указатель файла, который создается
функцией open(). В скалярном
контексте читается одна строка
вместе с символом “\ n” — перевода
строки, а в списковом весь файл
читается в список, элементы
которого суть строки файла.
В случае обнаружения конца файла
результат оператора не определен
и воспринимается как false.
Если не указана переменная результата,
то по умолчанию это $_. Указатель
файла по умолчанию STDIN — стандартный
ввод.
Например:
while(<>)
{ print; } ; # Прочитать и вывести
весь файл STDIN
У
оператора <> есть одна
отличительная особенность. Если
в командной строке нет никаких
аргументов, то читается стандартный
ввод, если есть аргументы, то
они считаются именами файлов,
которые последовательно читаются.
Если
в угловых скобках записана переменная,
то содержимое этой переменной
считается именем указателя файла
или ссылкой на указатель файла.
Если такого указателя не существует,
то содержимое переменной воспринимается
как шаблон имен файлов и результат
— имена файлов на диске, подходящих
по шаблону.
Например:
while(<*.pl>)
{ print;} ; # То же что и ls
*.pl
@files
= <*>; # Массив @files
содержит имена файлов в директории
Но
лучше сделать:
@files
= glob("*");
так
как внутри скобок можно использовать
переменные.
Следующий
урок
|