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

Пример:

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

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

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

Пример:

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

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

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

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

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

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

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

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

use integer;

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

no integer;


Логин
Пароль
Запомнить меня