Иллюстрированный самоучитель по Perl




Разные операции


В этом параграфе собраны операции, которые не вошли ни в одну из рассмотренных нами групп операций. Две из них упоминались при описании массивов и хешей (операции диапазон и запятая), а третья является единственной тернарной операцией языка Perl (операция выбора).

Операция диапазон

Бинарная операция диапазон ".." по существу представляет две различных операции в зависимости от контекста, в котором она используется.

В списковом контексте, если ее операндами являются числа (числовые литералы, переменные или выражения, возвращающие числовые значения), она возвращает список, состоящий из последовательности увеличивающихся на единицу целых чисел, начинающихся со значения, определяемого левым операндом, и не превосходящих числовое значение, представленное правым операндом. Операцию диапазон часто используют для задания значений элементов массивов и хешей, а также их фрагментов (см. главу 3). Она удобна для организации циклов for и f oreach:

# Напечатает числа от 1 до 5, каждое на новой строке, foreach $cycle (1..5){ print "$cycle\n"; }

# Напечатает строку "12345".

for(l..5){

print; '

}


(Операторы цикла рассматриваются в части 5.)


Замечание

Если значение какого-либо операнда не является целым, оно приводится к целому отбрасыванием дробной части числа.

Если левый операнд больше правого операнда, то операция диапазон возвращает пустой список. Подобную ситуацию можно отследить с помощью функции defined О, возвращающей истину, если ее параметр определен, или простой проверкой логической истинности массива, элементам которого присваивались значения с помощью операции диапазон:

$min = 2; .

$max = ~2;

Эаггау = ($min .. $max); # Массив не определен.

print "Эаггау array\n" if defined(@array); # Печати не будет!

print "Sarray array\n" if Эаггау; # Печати не будет!

Замечание

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




Содержание  Назад  Вперед