Автоматическое преобразование между числами и строками

Как правило, Perl автоматически выполняет преобразования между числами и строками по мере надобности. Как он узнает, какой именно формат нужен? Все зависит от оператора, применяемого к скалярному значению. Если оператор получает число (как оператор +), Perl воспринимает значение как число. Если оператор получает строку (как оператор .), Perl воспринимает значение как строку. Таким образом, вам не придется отвлекаться на различия между строками и числами. Используйте нужные операторы, а Perl сделает все остальное. Если строковое значение встречается в контексте, в котором оператор ожидает получить число (скажем, при умножении), Perl автоматически преобразует строку в эквивалентное числовое значение, как если бы оно было задано в десятичном вещественном формате.1 Таким образом, выражение "12" * "3" дает результат 36.

Завершающие символы, не используемые при записи чисел, и начальные пропуски игнорируются, поэтому выражение "12fred34" * " 3" тоже даст результат 36 без каких-либо проблем.2 Значение, которое не является числом, преобразуется в нуль. Например, это произойдет при использовании вместо числа строки "fred". Аналогичным образом при использовании числового значения там, где должна быть строка (скажем, при конкатенации), число преобразуется в свое строковое представление. Например, если вы хотите объединить строку Z с результатом умножения 5 на 73, это делается совсем просто:

"Z" . 5 * 7 # То же, что "Z" . 35 или "Z35"

Короче, вам не нужно беспокоиться о том, с чем вы работаете – с числом или со строкой (в большинстве случаев). Perl выполнит все преобразования за вас.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Бинарные операторы присваивания
Вещественные литералы
Встроенные предупреждения Perl
Выбор имен переменных
Вывод командой print

Вернуться в раздел: Perl / 1. Скалярные данные