|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 06 Sep 2004 15:30:18 To : Alexander V. Gaiduk Subject : Re: структуры в Перле -------------------------------------------------------------------------------- Alexander V. Gaiduk @ Mon, 6 Sep 2004 10:29:20 +0000 (UTC): AVG> Уважаемые, подскажите, как в Перле реализовать структуры данных? AVG> надо передать функции через одну переменную-параметр набор данных. AVG> на Паскале это выглядит так: AVG> type AVG> RecType = record AVG> unique_id : string; AVG> name : string; AVG> value : string; AVG> order : integer; AVG> end; AVG> var AVG> A : array[0..N] of RecType; AVG> как создать переменную "A", и как из неё внутри функции получить данные? Тебе для взаимодействия с паскалем или только внутри перла? Простейший вариант, который обычно и делают, если не нужно ничего более умного - хэш, если нужно ужаться по памяти (N достаточно велико) - массив, а индексы его именуют через use const (массив при том же количестве элементов ест заметно меньше памяти, чем хэш, особенно если количество элементов мало) AVG> и вообще стоит ли так делать, если в "A.value" может храниться несколько AVG> сотен Кбайт данных, а все это будет работать под mod_perl ? В принципе да, но если у тебя одновременно будут жить и A.value, и то, из чего ты его делал (и не меняться), то лучше, чтобы было не A.value, а A.value_ref - со ссылкой на то же самое значение. Тогда копирования не будет. Впрочем, кажется, в перле сейчас на строках сделано copy-on-write, так что и так, и так будет нормально. Ссылка будет иметь смысл только если после присваивания у тебя оригинал будет уже не нужен, но еще будет жить. -- 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2560672f979f2.html, оценка из 5, голосов 10
|