|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Michael Poliakov 2:5020/400 29 Mar 2001 12:37:54 To : All Subject : Re: Многомерные хэши --------------------------------------------------------------------------------
On Wed, 28 Mar 2001 11:33:15 +0000 (UTC), ran@ran.pp.ru (Artem Chuprina) wrote:
>pnr> @row_field_names = ('rf1', 'rf2', .. 'rfN1'); # размерность N1
>pnr> @col_field_names = ('cf1', 'cf2', .. 'cfN2'); # размерность N2
>pnr> @data_field_names = ('df1', 'df2', .. 'dfN3'); # размерность N3, но это
>pnr> неважно # data_field_names будут определять значение последнего ключа
>pnr> хэша
>
>pnr> $headers = {'ROWS' => \@row_field_names,
>pnr> 'COLS' => \@col_field_names,
>pnr> 'DATA' => \@data_field_names
>pnr> };
>
>pnr> Как строить (хотя бы пустой, заглушку) хэш размерности N1+N2+1 ?
>
>ОHО ТЕБЕ ЗАЧЕМ? Пустой-то? Вот появилось у тебя данное с индексом
>{$a1}...{$aN1}{$b1}...{$bN2}{$c1}...{$cN3} - ты пишешь
>
>$hash{$a1}...{$aN1}{$b1}...{$bN2}{$c1}...{$cN3} = $value;
>
>Все промежуточные структуры оно создаст само.
Проблема в том, что размерности N1 и N2 заранее неизвестны. Они могут
вычисляться как размеры массивов, после того как \@row_field_names и
\@col_field_names будут получены в качестве аргументов. Соответственно в теле
функции нельзя написать в лоб
$hash{$a1}...{$aN1}{$b1}...{$bN2}{$c1}...{$cN3} = $value;
ведь мы еще не знаем, сколько скобочек нужно нарисовать.
Michael Poliakov
--- ifmail v.2.15dev5
* Origin: Nizhniny Novgorod Information Networks (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2080f9a974d0.html, оценка из 5, голосов 10
|