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