|
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
|