Владимир Викторович Маслов


Введение в Perl



   Copyright (C) Маслов Владимир Викторович


   Все замечания и предложения направляйте по адресу:


   maslov@klgtts.kaluga.su


   maslov@news.kaluga.rosmail.com


 

   Все примеры в книге проверены для Перл версии 5.003


   операционной системы Unix FreeBSD 2.1.0.




'@'.
   Пример:
   @var1 # Все элементы массива var1 ( $var1[0], $var1[1], ... $var1[n])
   @var1[1,3,10] # Элементы $var1[1], $var1[3], $var1[10]
   @var1{'first','last'} # то же что и ( $var1{'first'}, $var1{'last'} )
   Хеш «целиком» начинается с символа '%'.
   Пример:
   %var, %key, %years
   Имена подпрограмм начинаются символом '&' если из контекста не видно
   что это подпрограмма.
   Пример:
   &sub1, &test_prog, test(12)
   Имена таблиц символов всегда начинаются символом '*'.
   Каждый тип переменных имеет свою область памяти поэтому $var1 и $var1[0] совершенно разные переменные, хотя $var1[0] часть массива @var1. Так же @var1 и %var1 – разные массивы переменных.
   Имена переменных могут содержать любые буквенно-цифровы символы за исключением пробела и табуляции. Эти смволы используются в качестве разделителей.
   Большие и малые буквы различаются поэтому $var1 и $Var1 – разные переменные. В Перл по умолчанию имена меток и указателей файлов пишут большими буквами.

 

Контекст.
   Большое значение для правильного употребления встроенных функций имеет контекст использования результата этих функций т.к. в противном случае они возвращают совершенно «непонятный» результат.
   В Перл имеется два главных контекста: скалярный и список (list).
   Проще говоря если в левой части выражения имеется ввиду одно единственное значение – то это скалярный контекст. Если множество значений – список.
   Пример:
   $var1 = <>; # Прочитать одну строку файла
   @var1 = <>; # Прочитать все строки файла в массив @var1
   $var1 = (1,2,3); # $var = 3 – количество элементов
   @var1 = (1,2,3); # Создание массива @var1 с элементами 1,2,3

 
Скалярные значения.
   Все данные в Перл это скаляры, массивы скаляров и хеши скаляров.
   Скалярные переменные могут содержать числа, строки и ссылки.
   Преобразование числа – строки происходит автоматически по умолчанию.
   Скаляр может иметь только одно единственное значение, хотя это может быть ссылка на массив скаляров. Так – как Перл сам преобразовывает числа в строки и наоборот то программисту нет необходимости думать о том что возвращает функция.
   В Перл не существует типов «строка» или «число» или «файл» или что то еще.
   Это контекстно зависимый полиморфный язык для работы с текстами.
   Скаляр имеет логическое значение "TRUE" (истина) если это не нулевая строка или число не равное 0.
   В Перл существует два типа нулевых (null) скаляров – определенные (defined) и не определенные (undefined). Не определенное значение возвращается когда что-то не существует. Например не известная переменная, конец файла или ошибка. С помощью функции defined() вы можете заранее обнаружить подобное состояние.