собсно код:
use POSIX ":sys_wait_h";
$SIG{CHLD}='IGNORE';
for (1..3) {
my $pid = fork();
unless ($pid) {
dbmopen(%changes, "/", 0644);
for ($i=1; $i<4; $i++) {
$changes{$$}{$i} = "thing $$ $i";
}
dbmclose(%changes);
exit;
}
}Здесь запускается три процесса, но записи в %changes происходят только для $i=2 и $i=3. Для $i=1 значения в итоге неопределены... Почему в срезе $i=1 пусто? В перле не силен, так что если глупость какую написал не серчайте) Заранее спасибо!
>[оверквотинг удален]
> }
> dbmclose(%changes);
> exit;
> }
>}
>
>Здесь запускается три процесса, но записи в %changes происходят только для $i=2
>и $i=3. Для $i=1 значения в итоге неопределены... Почему в срезе
>$i=1 пусто? В перле не силен, так что если глупость какую
>написал не серчайте) Заранее спасибо!методом "Тыка" было установлено что корректно работает для одномерного массива, для хеша хешей - имеем, то что имеем)
>[оверквотинг удален]
>> }
>>}
>>
>>Здесь запускается три процесса, но записи в %changes происходят только для $i=2
>>и $i=3. Для $i=1 значения в итоге неопределены... Почему в срезе
>>$i=1 пусто? В перле не силен, так что если глупость какую
>>написал не серчайте) Заранее спасибо!
>
>методом "Тыка" было установлено что корректно работает для одномерного массива, для хеша
>хешей - имеем, то что имеем)хочешь сохранить более сложную структуру, сериализуй ее, способов много
Storable и Data::Dumper