Данные - одна из самых важных частей любой программы. Perl автоматически определяет тип используемых вами данных. Язык делит данные на численные, строковые, списки и хеши (Hash). Есть еще заголовок HANDLE, он выдается при открытии файла или потока. Можно также использовать ссылки на другие переменные, но сделано это совершенно не так, как в других языках. Давайте рассмотрим примеры:
Двойной знак '$' означает: занести значение в переменную, имя которой хранится в переменной. Для удобства целочисленные данные можно вводить несколькими способами. Десятичные: 23, 2.6, 3.14, 1E6, 23_000. Шестнадцатеричные: 0xFF, 0x2395FABC. Восьмеричные: 0и113, 077 (0 - признак восьмеричного числа). Вот как это записывается:
Стоит особо отметить, что для внутреннего представления чисел Perl использует тип с плавающей запятой (double). Однако в контексте он их различает (например, количество байт для записи в файл) и автоматически преобразовывает. Также в Perl есть так называемые булевы (boolean) переменные, которые в принципе являются численными. Они могут принимать только два значения: 'истинно'(TRUE) и 'ложно'(FALSE).'Истинно' равносильно любому числу, кроме нуля, 'ложно' - это всегда нуль. Синтаксис языка Программа, написанная на Perl, исполняется сверху вниз, один раз (но никто не мешает вам использовать циклы) с очень свободным синтаксисом. Переменные в Perl возможно объявлять в любом месте программы, тип переменной (целое, строка...) не указывается, Perl сам его устанавливает в зависимости от содержания строки:
Скаляр (скалярное значение) - это число, строка, значение булевого типа, но не список значений и не массив (включая ассоциативные массивы). Таким образом, скаляр - это только одно значение. Знак '$' перед именем переменной указывает, что данные надо рассматривать как скаляр. Имя переменной может содержать английские буквы, символ '_' и цифры. Начинаться с цифры переменная не может. Имена переменных (да и названия функций) чувствительны к регистру. Переменные $a и $A - это разные переменные. Объявление переменной в Perl - эквивалентно присвению ей значения. До тех пор пока переменная не существует, Perl считает ее значение равное undef. Это не просто '0', а именно признак того, что у переменной нет значения. При использовании такой переменной для числовых операторов undef преобразуется в 0, для строковых - в пустую строку "". Проверить, есть ли значение у переменной, позволяет функция defined. Функция defined возвращает 1 (TRUE), если ее параметр не равен undef, и возвращает undef в противном случае. Декларация - это объявление переменной или функции, а оператор - одна законченная лексема, например:
Один или более операторов и деклараций, которые заключены в фигурные скобки '{ }', называют 'блоком'. Блок имеет смысл в функциях, циклах и операторах сравнения. Разделитель в Perl один - ';'. Как уже говорилось, язык не требует его в отладчике, но требует в конце строки (между операторами, если быть точнее) в скриптах. Не обязателен он только после последнего оператора в блоке. |