Типы данных Perl
Perl — слабо типизированный язык, поэтому переменным не нужно указывать тип. Интерпретатор Perl автоматически выбирает подходящий тип на основе контекста.
В Perl есть три основных типа данных: скаляры, массивы и хэши. Ниже приведено описание этих трёх типов данных:
| Number | Тип и описание |
|---|---|
| 1 | Скаляр
Скаляр — простейший тип данных в Perl. Переменные этого типа данных могут быть числами, строками или числами с плавающей запятой, без строгого разграничения. При использовании добавьте$перед именем переменной, чтобы указать, что это скаляр. Например: $myfirst=123; #数字123 $mysecond="123"; #字符串123 |
| 2 | Массив
Переменные массива используют символ@в начале, индексы начинаются с 0, например:@arr=(1,2,3) @arr=(1,2,3) |
| 3 | Хэш
Хэш — это неупорядоченная коллекция парключ/значение. Вы можете использовать ключи в качестве индексов для получения значений. Переменные хэша используют символ%в начале.
%h=('a'=>1,'b'=>2);
|
Числовые литералы
1. Целые числа
Perl фактически хранит целые числа в регистрах с плавающей запятой вашего компьютера, поэтому с ними на самом деле обращаются как с числами с плавающей запятой.
На большинстве компьютеров регистры с плавающей запятой могут хранить около 16 цифр; всё, что длиннее, отбрасывается. Целые числа на самом деле являются особым случаем чисел с плавающей запятой.
Целочисленные переменные и операции:
$x = 12345;
if (1217 + 116 == 1333) {
# 执行代码语句块
}
Восьмеричные и шестнадцатеричные числа: восьмеричные числа начинаются с 0, шестнадцатеричные — с 0x. Например:
$var1 = 047; # 等于十进制的39 $var2 = 0x1f; # 等于十进制的31
2. Числа с плавающей запятой
Данные с плавающей запятой, например: 11.4, -0.3, .3, 3., 54.1e+02, 5.41e03.
Регистры с плавающей запятой обычно не могут точно хранить числа с плавающей запятой, что приводит к ошибкам. Следует обращать особое внимание при выполнении операций и сравнений. Диапазон экспоненты обычно составляет от -309 до +308.
Пример
После выполнения вышеприведённой программы вывод:
第一个值为:0 第二个值为:0.01
3. Строки
Строки в Perl представляются с помощью скаляра. Способ их определения очень похож на C, но в Perl строки не завершаются \0.
Разница между двойными и одинарными кавычками в Perl: двойные кавычки могут должным образом интерпретировать некоторые escape-последовательности и переменные, а одинарные не могут их интерпретировать и выводят их как есть.
Однако использование одинарных кавычек позволяет создавать многострочный текст, как показано ниже:
#!/usr/bin/perl $var='这是一个使用 多行字符串文本 的例子'; print($var);
После выполнения вышеприведённой программы вывод:
This is an example of using multi-line string text
Некоторые распространённые escape-последовательности в Perl показаны в таблице ниже:
| Управляющий символ | Значение |
|---|---|
| \\ | Обратная косая черта |
| \' | Одинарная кавычка |
| \" | Двойная кавычка |
| \a | Системный звонок |
| \b | Возврат на один символ |
| \f | Подача страницы |
| \n | Перевод строки |
| \r | Возврат каретки |
| \t | Горизонтальная табуляция |
| \v | Вертикальная табуляция |
| \0nn | Создаёт число в восьмеричном формате |
| \xnn | Создаёт число в шестнадцатеричном формате |
| \cX | Управляющий символ; x может быть любым символом |
| \u | Приводит следующий символ к верхнему регистру |
| \l | Приводит следующий символ к нижнему регистру |
| \U | Приводит все символы к верхнему регистру |
| \L | Приводит все символы к нижнему регистру |
| \Q | Добавляет обратную косую черту к несловным символам до \E |
| \E | Завершает \L, \U, \Q |
Пример
Далее давайте подробно рассмотрим использование одинарных и двойных кавычек и экранирующих символов:
Пример
Вывод приведенного выше примера: