Автор Тема: разные варианты использования undef  (Прочитано 2229 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
разные варианты использования undef
« : 06 Августа 2004, 15:31:55 »
Столкнулся с такой фичей ;) искал долго и упорно

при использовании функции undef применительно к массивам:

@array = undef и undef @array - выводят разные результаты, если в первом случае получаем массив с одним пустым элементом, то во втором - просто пустой массив...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
разные варианты использования undef
« Ответ #1 : 06 Августа 2004, 15:40:20 »
Хмм... это по крайней мере логично. Это две разные вещи, в первом случае это пустое правое значение а во втором это функция.
perldoc -f undef
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
разные варианты использования undef
« Ответ #2 : 06 Августа 2004, 16:04:47 »
NeoNox

Это логично, но немного смутило, что в описании этого момента как раз и не было...

Проблема возникла в случае, когда массив используется повторно при одном объявлении:

my 
@array = (\'1\',\'2\',\'3\');
#... some function ...
@array = undef;
for (1..3) {
   push @array, $_
}
# @array = (\'\', \'1\', \'2\', \'3\') значение массива после цикла
#... some function ...


[OFF]Прошлось потратить некоторое время прежде чем нашел, откуда берется пустой элемент, сначала грешил на цикл (в моем варианте он более сложны), вконце когда "опустились руки" сделал просто shift @array; пока все-таки пошагово не прошел всу процедуру...[/OFF]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28