Использование выражений, создающих скаляры, в списочном контексте

В этом направлении все тривиально: если выражение обычно не имеет списочного значения, скалярное значение автоматически преобразуется в список из одного элемента:

@fred = 6 * 7; # Список из одного элемента (42)
@barney = "hello" . ' ' . "world";

Правда, в таком преобразовании кроется одна возможная ловушка:
@wilma = undef; # ОЙ! Получаем список из одного элемента (undef)

# А это не эквивалентно:
@betty = ( ); # Правильный способ очистки массива

Так как undef является скалярным значением, присваивание undef массиву, естественно, не приводит к его очистке. Проблема лучше всего решается присваиванием пустого списка.

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

Статьи из раздела Perl на эту тему:
в списочном контексте
Главная служебная переменная: $_
Интерполяция массивов в строках
Использование выражений, создающих списки, в скалярном контексте
Обращение к элементам массива

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