$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).
|