Не определенное значение возвращается когда что-то не существует. Например не известная переменная, конец файла или ошибка. С помощью функции
defined()вы можете заранее обнаружить подобное состояние. Количество элементов массива так же является скаляром и начинается символами
$#подобно интерпретатору
csh. Фактически
$#var1– это индекс последнего элемента массива. Нужно помнить что первый элемент имеет индкес 0 поэтому количество элементов определяется как
$#var1+1. Присвоение значения
$#var1– изменит длину массива и разрушит «оставленные» значения. Присвоение значения элементу массива с индексом больше чем
$#var1 – увеличит размер массива, а присвоение ему нулевого списка – обнулит. В скалярном контексте имя массива возвращает его длину (для списка возвращается последний элемент). Пример: @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" (здесь текст) метод.
|