Данные, содержащие строку символов,
называют строковыми (или стрингами).
Простейшие примеры:
$name='Roman';
$town="Moscow";
$country=Russia; |
|
Обратите внимание на последний
пример. В нем отсутствуют кавычки, но
это не ошибка. Perl позволяет их не писать,
но при запуске такого скрипта с ключом -w
вы получите предупреждение о том, что 'возможно
совпадение с именем функции в будущих
версиях'. Это значит, что если в Perl
появится функция Russia, то в $country будет
занесено значение, которое она (функция)
вернет, а не строчка Russia. Отсюда правило:
лучше кавычки или апострофы указывать,
это позволит избежать лишних
предупреждений и возможных ошибок.
Уместно будет напомнить, что все, что
находится в кавычках, подлежит
преобразованию, т. е. замене имен
переменных на их значения, \n (и подобных)
на соответствующие спецсимволы.
Список - это несколько скалярных
величин. Массив - переменная, которая
содержит этот список. Для обозначения
массивов используют символ '@'.
@names = ('Москва', 'Екатеринбург',
'Питер');
# заносит три имени в массив
@digits = (0..9);
# 0,1,2,3,4...9 |
|
Как видите, при помощи оператора '..'
можно включать сразу несколько величин.
Для доступа к элементам массива
используется индекс в квадратных
скобках. Первый элемент массива имеет
номер 0. И самое главное! Если вам нужен
один элемент, то имя должно начинаться
на '$', обозначая скалярную величину.
Впрочем, лучшее объяснение - это
примеры:
@names = ('Москва', 'Екатеринбург',
'Питер');
# заносит три имени в массив
@digits = (0..9);
# 0,1,2,3,4...9
@names2 = (@names,'Киев');
# теперь у нас массив из 4 имен
print $names2[1]'
# Perl заметьте, использует знак '$'
@somedigits=@digits[1..3,6,7..9];
# теперь у нас 1,2,3,6,7,8,9
# ведь первый элемент - нулевой
индекс
print @somedigits;
# распечатаем...
# 1236789
$,=" ";
# установим разделитель
print @somedigits;
# распечатаем более красиво
# 1 2 3 6 7 8 9 |
|
В этом примере использовалась
предопределенная переменная '$,'.
Значение, занесенное в нее, будет
разделителем при печати. Это особенно
удобно в нашем случае, т. к. в функцию print
передается несколько значений.
|