Типы данных используются в программах при объявлении переменных. Короче говоря, тип данных определяет то множество значений, которые может принимать переменная, а также набор операций, которые программа может выполнять с ней. В языке Perl данные могут быть числом или строкой символов. Одно значение называется скалярной величиной или просто скаляром. Ниже приведены примеры скалярных значений, которые используются в языке Perl :
· Десятичные: 127 или 127.0 или 1.27Е2
· Шестнадцатиричные: Ox 7 F или 0 x 7 f
· Восьмеричные: 0177 (первый 0 указывает, что используется восьмеричное число)
· Строка : "Hello World\n" или 'Hello World'
Например, следующая команда использует отладчик Perl для того, чтобы вывести число 0177 восьмеричной системы, соответствующее числу 127 десятичной:
DB<4> р 0177 <ENTER>
127
Perl переводит данные в свой внутренний формат. Когда Perl печатает восьмеричные или шестнадцатиричные значения, он сначала переводит их в десятичный формат, как было показано.
Примечание: Как вы узнаете, скрипт Perl позволяет использовать функцию printf для того, чтобы выводить, значения в вызываемом формате, в таком как восьмеричный или шестнадцатиричный.
В качестве внутреннего представления всех чисел используется формат с плавающей запятой двойной точности ( double ). Иными словами, среди внутренних форматов нет целочисленного. Тем не менее, в большинстве случаев вы можете не обращать на это внимания, и Perl сделает все сам как надо. Например, если вы используете величины в контексте, где только целочисленные значения имеют смысл, Perl сам автоматически усечет число.
Примечание: Если вы программируете на С и использовали целочисленное деление с усечением целых чисел автоматически, то, программируя на языке Perl , надо не забыть выполнить усечение вручную, используя функцию i nt ().
Следующая команда иллюстрирует, как Perl обрабатывает числа целого типа и с плавающей запятой:
print 6 & 3; # выведет 2
print 6.9 & 3.1 #
print 7 / 2 # выведет 2.3333 не целое
print int(7/3) # выведет 2
Точно так же, как Perl преобразует числа с плавающей запятой в целые числа: когда скрипт использует целочисленные значения, он также преобразует числа в строки и наоборот, когда такое преобразование имеет смысл. Например, если скрипт использует числа в контексте, где только строки имеют смысл, например, при соединении строк, он конвертирует числа в строки. Аналогичным образом, если требуется использовать строки там, где только числа имеют смысл, то Perl конвертирует их в числа. Работая со скриптами Perl , обычно не надо беспокоиться о внутреннем представлении скалярных величин.
Perl поддерживает также концепцию булевых значений, но не имеет для их описания специального типа. Как и в С, численное значение рассматривается истинным, если оно не равно нулю. Дополнительно строковое значение рассматривается как истинное, если оно не равно ‘’ или ‘0’. Некоторые булевы операторы, такие как «>» (больше), возвращают единицу в качестве значения «истинно» и нуль — в качестве «ложно». Тем самым, ваш скрипт должен просто рассматривать ненулевые величины как строчного типа, так и числового в качестве булева значения «истинно».
Скрипты Perl могут группировать скалярные величины вместе и создавать список ( list ). Если скрипт хранит список в какой-то переменной, то эта переменная становится массивом ( array ).