Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     17 Aug 2004  13:27:40
 To : Alexander Reznikov
 Subject : Re: Ссылка на хэш
 -------------------------------------------------------------------------------- 
 
 Alexander Reznikov -> Serge Chervjakov  @ Sat, 31 Jul 2004 22:05:08 +0400:
 
  AR>   Как-то Serge Chervjakov писал к Roman V Tchemisov, но я услышал и решил
  AR> ответить :
 
  RVT>>> Какой вариант создания ссылки на хэш лучше: \%hash или {%hash}?
 
  SC>> Hе буду на коде оказывать ибо и самому лень разбирать и тебе будет
  SC>> неинтересно:). Hо только скажу, что да - \%hash - работает быстрее,
  SC>> чем {%hash}. Hо это две большие разницы... Первая - возращает ссылку
  SC>> на хеш %hash, а {%hash} возращает ссылку на другой хеш - не %hash.
  SC>> Т.е. если тебе критично, что бы %hash не менялся в дальнейшем коде, то
  SC>> именно {%hash}. Если %hash используется лишь раз в этой функции, то
  SC>> \%hash.
 
  AR> А вот такой вопрос. Как проще (и быстрее) всего получить указатель
  AR> на массив, возвращаемый неким оператором или функцией? Что-то я
  AR> немного на этом сегодня застрял.
 
  AR> Пример (не совсем минималистический, но чтобы понятнее было):
 
  AR> map { head_decode($_, $charset) } $head->get($name);
 
  AR> Hужно получить указатель на массив без использования временных переменных.
  AR> Сейчас так:
 
  AR> return [ map { head_decode($_, $charset) } $head->get($name) ];
 
  AR> В документации перловой описан именно такой путь. Hо что-то меня терзают
  AR> сомнения... Как я понимаю:
 
  AR> 1. Создаётся анонимный массив с результатом map'а.
  AR> 2. Массив копируется в другой анонимный массив.
  AR> 3. Уже на этот второй массив создаётся ссылка.
 
  AR> Или я заблуждаюсь?
 
 Заблуждаешься.  Возвращается список, а не массив.  То есть, может быть,
 на уровне потрохов перла и можно получить на эту штуку ссылку, а тут -
 никак, на список ссылок не бывает.  [] создает из списка массив и
 возвращает ссылку на него.  Вариант с временной переменной будет делать
 то же самое.
 
 Да, не исключено, что на уровне потрохов же это дело и оптимизируется, и
 операция [ список ] не копирует сам список - как максимум, создает
 служебную структуру собственно массива.  Hо это надо в потроха ползать,
 чтобы проверить.
 
 -- 
 Artem Chuprina
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757
 --- ifmail v.2.15dev5.3
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Ссылка на хэш   Alexander Reznikov   31 Jul 2004 23:05:08 
 Ссылка на хэш   Justin Finch-Fletchley   01 Aug 2004 13:18:54 
 Re: Ссылка на хэш   Artem Chuprina   17 Aug 2004 13:27:40 
Архивное /ru.perl/25606ffa3a147.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional