Вот как-то так:
Код | use IPC::Shareable; my %buffer; my $handle = tie %buffer, 'IPC::Shareable', undef, { destroy => 1 };
|
В детях делаю так:
Код | $handle->shlock(); $buffer{out} .="\nend $id at ".localtime()."\n"; $buffer{out_reconfig}=Dumper($o{reconfig}) if exists $o{reconfig}; push @{$buffer{error}}, keys %{$o{error}} if exists $o{error}; $buffer{out_error}=Dumper($o{error}) if exists $o{error}; foreach (keys %WARNING) { $buffer{'WARNING'}{$_}=1; } $handle->shunlock();
|
В принципе можно оценить количество ключей в $o{error} и если их больше N не запоминать данные, тем более они нужны больше для дебага. |