Чтение онлайн

на главную - закладки

Жанры

Шрифт:

– увеличит размер массива, а присвоение ему нулевого списка – обнулит.

В скалярном контексте имя массива возвращает его длину (для списка возвращается последний элемент).

Пример:

@var1 = (4, 3, 2, 1); # Присвоение значения элементам массива

$i = @var1; # Использование скалярного контекста

print $i; # Печать результата 4 – кол-во элементов

print @var1; # Списковый контекст, печать всех элементов.

Для принудительного

получения скалярного значения удобно применять функцию scalar.

Пример:

print scalar(@var1); # Вывод длины массива а не его значений

Хеш в скалярном контексте возвращает «true» если существует хотя бы одна пара «ключ-значение». Фактически возвращается строка типа 2/8 где 8 – количество выделенных «ячеек» памяти, а 2 – количество использованных.

Конструкторы скаляров.

Числа пишутся стандартно:

123

123.123

0.12

.12E-10

0xABCD # Шестнадцетиричная запись

0377 # Если 0 в начале – восьмеричная

123_456_123 # Так тоже можно для удобства чтения.

Строки ограничиваются одинарными (') или двойными (") кавычками:

'Ровняйсь, смирно!'

«Построемся и спасемся.»

Способов обозначения строк очень много. Плодробно смотрите описание оператора qq.

В хеше можно опускать кавычки если индекс не содержит пробелов.

Пример:

$var1{first} то же что и $var1{'first'}

Обратите внимание на то что перед первой одинарной кавычкой должен стоять пробел иначе строка воспримется как имя переменной так-как в именах разрешено использование одинарных кавычек.

Запрещается в кавычках применять зарезервированные литералы __LINE__ (номер текущей строки программы), __FILE__ (текущий файл).

Для обозначения конца программы можно применять литерал __END__

Весь последующий текст игнорируется, но его можно прочитать использую указатель файла DATA.

Слова в программе не поддающиеся ни какой интепретации воспринимаются как строки в кавычках поэтому рекомендуется имена меток и указателей файлов писать большими буквами для избежания возможного «конфликта» с зарезервированными словами.

В Перл есть возможность вставлять текст документа прямо в программу.

Так называемый "here-doc" (здесь текст) метод. Обозначается символами << за которым идет слово-ограничитель.

Пример:

print <<EOF; # Все строки до EOF – текст для печати.

Эй вы трое, идите двое сюда!

Полковник Савонькин.

EOF

Конструкторы списков.

Список – множество значений перечисленных

через запятую и заключенных в круглые скобки. В списковом контексте список возвращает последний элемент списка.

Пример:

@var1 = (1, 2, 'привет', 1.2); # Присвоить значение элементам.

где

$var1[0] = 1,

$var1[1] = 2,

$var1[2] = 'привет'

$var1[3] = 1.2

$var1 = (1, 2, 'привет', 1.2);

а здесь $var1 = 1.2 т.е. последнее значение списка.

Допускается применять в списке другие списки, но в полученном списке уже невозможно различить начало и конец включенных списков.

Пример:

@s1 = (1, 2, 3); # Первый список

@s2 = (6, 7, 8); # Второй

@s = (0, @s1, 4, 5, @s2, 9, 10); # Включаем списки @s1 и @s2

print @s; # Результат: 012345678910 – значения без пробелов.

Список без элементов обозначаестя как и называется нуль-списком.

Списковое выражение можно употреблять как имя массива, но при этом его нужно брать в круглые скобки.

Пример:

print ('январь','февраль','март')[1];

Результат: февраль

Список может быть присвоен списку только если каждый элемент в списке в левой части выражения допустим по типу списку в правой части.

Пример:

($a, $b, $c) = (1, 2, 3); # $a = 1, $b = 2, $c = 3

Присваивание списков в скалярном контексте возвращает количество присвоенных элементов.

Пример:

$x = (($a, $b, $c) = (1,2)); # Результат $x=2

В случае присваивания списка хешу список разсматривается как пары: ключ-значение.

Пример:

%дни_месяца = ('январь', 31, 'февраль', 30);

Результат: $дни_месяца{январь} = 31, $дни_месяца{февраль} = 30

Для удобства записи можно использовать выражение с => .

Пример:

%дни_месяца = (

январь => 31,

февраль => 30,

);

Тип typeglobs

В Перл используется специальный внутренний тип typeglog для записи массива всех переменных. Такие массивы начинаются с символа '*'. Их удобно применять для передачи ссылок на массивы и хеши, но в данной версии Перл уже есть возможность применять ссылки поэтому это делается очень редко. Единственно где это необходимо так это для работы со ссылками на файлы. Например если вам нужно создать локальную ссылку на файл в процедуре то это лучше сделать так:

Поделиться:
Популярные книги

Хорошая девочка

Кистяева Марина
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Хорошая девочка

Наследник с Меткой Охотника

Тарс Элиан
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник с Меткой Охотника

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

Кротовский, вы сдурели

Парсиев Дмитрий
4. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
рпг
5.00
рейтинг книги
Кротовский, вы сдурели

Измена. Возвращение любви!

Леманн Анастасия
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Возвращение любви!

Не лечи мне мозги, МАГ!

Ордина Ирина
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.00
рейтинг книги
Не лечи мне мозги, МАГ!

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Магия чистых душ 2

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Магия чистых душ 2

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Жена фаворита королевы. Посмешище двора

Семина Дия
Фантастика:
фэнтези
5.00
рейтинг книги
Жена фаворита королевы. Посмешище двора

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Господин следователь

Шалашов Евгений Васильевич
1. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь

Имперец. Земли Итреи

Игнатов Михаил Павлович
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
5.25
рейтинг книги
Имперец. Земли Итреи

Жизнь в подарок

Седой Василий
2. Калейдоскоп
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Жизнь в подарок