|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Eugene Grosbein 2:5006/1 23 Dec 2003 00:17:56 To : All Subject : ссылки на строки --------------------------------------------------------------------------------
Переменная $i в цикле принимает много разных (строковый) значений.
От каждого значения вычисляется некоторая функция f($x), которая
возвращает строку. Строка может быть длинная, но всего разных значений
фукции f($x) может быть мало. Функция считается долго, а считать ее
приходится очень часто. Поэтому логично хранить вычисленные значения в хеше
$ff{$x} и при необходимости брать посчитанные из него, а не пересчитывать.
Проблема в том, что значения f($x) бывают длинные и хранить их копии
в хеше нет никакого смысла - память кушается сотнями мегабайт.
Хочется хранить в хеше лишь ссылки на эти значения, по образу и подобию
C-шных указателей, несколько байт всего.
Как синтаксически корректно создать ссылку не на переменную, а на скаляр,
который она сейчас содержит? Чтобы при изменении переменной разыменованная
ссылка вернула бы старое значение?
Если написать: $n=f($x); $ff{$x}=\$n, то $ff{$x} будет ссылкой на $n
или на скаляр, который $n сейчас содержит?
Eugene
--- slrn/0.9.7.4 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2609330fe0dfc.html, оценка из 5, голосов 10
|