Отправляет email-рассылки с помощью сервиса Sendsay

Perl - подпишись и учись!

  Все выпуски  

Perl - подпишись и учись!


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

 Hi, All!  
    Приветствую всех! Прошу прощения за то, что ваши глаза давно не видели моей рассылки, но так уж получилось, были проблемы, не было времени и т.д.
    В прошлом выпуске мы остановились на различном использовании массивов, и на том, что я обещал рассказать об операциях push и pop, что я, собственно, сейчас и буду делать.
    Кроме присвоения списком, для изменения массивов можно использовать функции push и pop. Функция push добавляет один или несколько элементов в конец массива:
  push массив, список
Значения списка добавляются в конец массива, а длина массива увеличивается на длину списка.

Функция pop удаляет данные из массива.
  pop массив
Она удаляет и возвращает в качестве своего результата последнее значение в массиве, сокращая длину массива на один элемент.
Следующий пример показывает, как последовательно добавляются элементы в изначально пустой массив:
  push(@array, "one");
  push(@array, "two");
  push(@array, "three");

  print $#array, ' : ', @array;
Результат:
2:onetwothree
Обратите внимание, что $#array на единицу меньше числа элементов массива.
Аналогичным образом удаляются данные из конца массива:
  @array=("one", "two", "three");
  $variable= pop(@array);
  print @$variable/$#array";
Результат:
three/1
    Функции shift и unshift работают с началом массива так же, как push и pop с его концом. Вот как используется shift:
shift массив
Эта функция удаляет первый элемент массива, возвращая его как результат. Массив сокращается на один элемент, а остальные элементы сдвигаются на одну позицию влево.

А вот как выглядит функция unshift:
unshift массив, список
Эта функция выполняет операцию, обратную действиям функции shift. Она последовательно добавляет список в начало массива, сдвигая остальные элементы массива вправо и увеличивая длину массива на размер списка.
Пример использования функции shift для извлечения элемента массива:
  @array=("one", "two", "three");
  $variable= shift(@array);
  print @$variable/$#array";
Результат:
one/1
    Если определён массив с именем @array, переменная @#array содержит индекс последнего его элемента.
Например при наличии массива
  @array=(1,2,3);
чтобы вывести число его элементов, надо добавить единицу к переменной $#array:
  @array=(1,2,3);
  print "\@array has ".($#array + 1) . " elements.";
Результат:
@array has 3 elements.
Единица прибавляется потому, что индексы массива отсчитываются от нуля.

Использование массива в скалярном контексте также возвращает его длину. Чтобы перевести массив в скалярный контест, можно выполнить над ним фиктивную числовую операцию (например прибавить ноль):
@array+0
либо, что более проффесианально, использовать функцию scalar:
  @array=(1,2,3);
  print "\@array has " . scalar($#array) . " elements.";
Результат:
@array has 3 elements.
либо, наконец, попросту присвоить массив скалярной переменной:
  @array=(1,2,3);
  $variable=@array;
  print "\@array has " . $variable . " elements.";
Результат:
@array has 3 elements.
Обратите внимание, что если вы присвоите скалярной переменной список, а не массив, то результатом будет не длина списка, а последний элемент списка. В этом, как и во многих других примерах, проявляется контекстная зависимость команд Perl.

P.s. Не взыщите за дизайн рассылки, особенно те, у кого большие мониторы с большим разрешением экрана, вскоре он будет подкорректирован. И ещё, если у вас есть вопросы, то задавайте их на форуме сайта.

Another Banner Network

http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное