"Дмитрий Леонов. Использование Perl в интернет-технологиях" - читать интересную книгу автора

вместо имени переменной, то перед знаком доллара необходимо поставить
обратную косую черту: "\$a".
Операции над числовыми значениями ничем не отличаются от знакомых по С
(за исключением возведения в степень **, операций not, and, or, дублирующих
операции !, , ||, но имеющих меньший приоритет, чем операции присваивания,
и операции xor, означающей логическое исключающее ИЛИ). Для строковых
переменных определены операция конкатенации "." (точка), операция повторения
"x", операции ne (неравенство строк), eq (равенство), lt (строковое "больше
чем") и gt (строковое "меньше чем"). Также определена операция сравнения
двух строк cmp, возвращающая -1, 0 или 1, объединяющая проверки равенства и
сравнения, и аналогичная ей операция для чисел =>.
Встроенная функция chop удаляет последней символ строки, встроенная
функция chomp удаляет последний символ, если он является символом
разделителя входных записей (значение по умолчанию - символ новой строки
\n, которое может быть заменено присваиванием нового значения встроенной
переменной $\).
Поиск подстроки осуществляется функцией index($строка, $подстрока,
$старт), возвращающей индекс первого вхождения подстроки в строку, большего
чем $старт (третий параметр можно опустить) и функцией rindex, делающей то
же самое, но просматривающей строку справа налево. Извлекается подстрока из
строки функцией substr ($строка, $начало, $длина). При отсутствии третьего
параметра будут извлечены все символы до конца строки. Эта функция может
стоять в левой части оператора присваивания, позволяя тем самым изменять
часть строки на лету.
Массивы в Perl могут хранить любое количество элементов и увеличиваются
по мере необходимости. Имена массивов начинаются с символа @: @a, доступ к
отдельному элементу массива записывается в виде $a[10] (нумерация элементов
массива начинается с 0, причем последний элемент массива имеет индекс -1,
предпоследний -2 и т.д.). В зависимости от списочного или скалярного
контекста разные функции могут вести себя по разному - так, функция chomp в
применении к массиву удалит последний символ у каждого элемента массива, а
@a в скалярном контексте вернет количество элементов массива.
При обращении к элементу, находящемуся за пределами массива, будет
возвращено значение undef, при присваивании значения такому элементу массив
автоматически увеличится, а все промежуточные элементы получат значение
undef.
Инициализируются массивы списочными данными, которые записываются в
виде заключенной в круглые скобки последовательности значений, отделенных
друг от друга запятыми:
@a = (0, $a, 5, "123", @b);
При этом вставленные таким образом элементы массива @b находятся на том
же уровне иерархии, что и другие элементы списка, т.е. просто дописываются в
конец массива @a.
Присваивание списков позволяет осуществлять довольно любопытные
операции:
($a, $b, $c, @e) = ($b, $a, @g);
$a и $b обменяются значениями, $c будет присвоено значение первого
элемента массива @g, остальные элементы будут скопированы в массив @e.
Срез массива позволяет выбрать из него за один раз несколько элементов:
@a[0, 1, 10];