Чтение онлайн

на главную - закладки

Жанры

Шрифт:

В случае обнаружения конца файла результат оператора не определен и воспринимается как false. Если не указана переменная результата то по умолчанию это $_. Указатель файла по умолчанию STDIN – стандартный ввод.

Пример:

while(<>) { print; }; # Прочитать и вывести весь файл STDIN

У оператора '<>' есть одна отличительная особенность. Если в командной строке нет никаких аргументов то читается

стандартный ввод, если есть аргументы то они считаются именами файлов которые последовательно читаются.

Если в угловых скобках записана переменная то содержимое этой переменной считается именем указателя файла или ссылкой на указатель файла. Если такого указателя не существует то содержимое переменной воспринимается как шаблон имен файлов и результат – имена файлов на диске подходящих по шаблону.

Пример:

while(<*.pl>) { print;}; # То же что и ls *.pl

@files = <*>; # Массив @files содержит имена файлов в директории

но лучше сделать: @files = glob("*"); т.к. внутри скобок можно использовать переменные.

Слияние констант.

Как и С Перл выполняет возможные вычисления в период компиляции.

Так подстановка символов после '\' , операция конкатенации строк, арифметические выражения содержащие только одни константы, все это делается в момент компиляции что существенно увеличивает скорость выполнения программы.

Целочисленная арифметика.

По умолчанию Перл выполняет арифметику с плавающей запятой, но если вы укажете:

use integer;

то компилятор будет использовать целочисленную арифметику до конца текущего блока, хотя вложенный блок может это и отменить в своих пределах с помощью:

no integer;

Встроенные функции

Встроенные функции используются как термы выражений и подразделяются на две категории: списковые операторы и унарные операторы. Это влияет на их приоритет по отношению к оператору ',' – запятая. Списковые операторы могут именть множество (список) аргументов, а унарные только один. Таким образом запятая завершает аргументы унарного оператора и разделяет аргументы спискового.

Аргумент унарного оператора воспринимается обычно в скалярном контексте а спискового как в скалярном так и

списковом причем скалярные аргументы идут первыми. В дальнешем списковые аргументы мы будем обозначать словом 'LIST' это значит что функция имеет список аргументов разделенных запятой.

Аргументы функций можно заключать в круглые скобки и таким образом обозначать что «это функция» и приоритет не имеет значения иначе это списковый или унарный оператор с определенным фиксированным приоритетом. Пробел после имени функции и скобкой значения не имеет. Поэтому будьте внимательны!

Пример:

print 1 + 2 + 3; #

результат 6

print(1+2)+3; # результат 3

print (1+2)+3; # опять 3

print (1+2+3); # 6

Если функция возвращает результат как в скалярном так и в списковом контексте то код выхода по ошибке – скаляр c неопределенным значением или пустой список.

Запомните правило:

Не существует общего правила преобразования списка в скаляр!

Каждый оператор и функция имеют свой вид значения в скалярном котексте.

Для одних это количество элементов из скалярного контекста. Для других первый элемент списка или последний или количество успешных операций. Каждый свое если вы специально не указываете.

Оператор '-X'.

– X указатель файла

– X выражение

– X

Проверка файла, где 'X' одно из ниже описанных значений.

Это унарный оператор с одним аргументом – либо именем файла либо указателем файла. Проверяет одно из условий. Если аргумент не указан то берется значение переменной $_. Для ключа -t STDIN.

Результат 1 если true и '' если false или неопределенное значение если файл не найден. Несмотря на странный вид это унарный оператор с соответсвующим приоритетом. Аргумент можно заключать в круглые скобки.

'X' имеет следующие значения:

– r Файл разрешен на чтение эффективным uid/gid

– w на запись -//-

– x исполнение -//-

– o принадлежит эффективному uid (идентификатор пользователя)

– R Файл разрешен на чтение реальным uid/gid

– W на запись -//-

– X исполнение -//-

– O принадлежит реальному uid

– e файл существует

– z пустой

– s не пустой

– f обычный текст

– d директория

– l символическая ссылка

– p pipes (конвейер)

– S socket (гнездо)

– b специальное блочное устройство

– c -//– символьное -//-

– t указатель на уст-во tty

– u установлен бит setuid

– g -//– setgid

– k -//– sticky

– T текстовой файл

– B двоичный

– M «возраст» файла в днях на момент старта скрипта

– A дней с последнего чтения

– C дней с последней модификации inode

Поделиться:
Популярные книги

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10

Последний Паладин. Том 4

Саваровский Роман
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 4

Низший

Михайлов Дем Алексеевич
1. Низший!
Фантастика:
боевая фантастика
7.90
рейтинг книги
Низший

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Темный Лекарь

Токсик Саша
1. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь

Возвращение Безумного Бога 5

Тесленок Кирилл Геннадьевич
5. Возвращение Безумного Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Возвращение Безумного Бога 5

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Его темная целительница

Крааш Кира
2. Любовь среди туманов
Фантастика:
фэнтези
5.75
рейтинг книги
Его темная целительница

Теневой Перевал

Осадчук Алексей Витальевич
8. Последняя жизнь
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Теневой Перевал

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Идеальный мир для Лекаря 18

Сапфир Олег
18. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 18

По дороге пряностей

Распопов Дмитрий Викторович
2. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
5.50
рейтинг книги
По дороге пряностей