- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
sub merge_data_struct { # to, from, bless coderefs as
for(keys %{$_[1]}){
if(ref($_[1]->{$_}) eq 'HASH'){
merge_data_struct($_[0]->{$_},$_[1]->{$_},$_[2])
}
elsif(ref($_[1]->{$_}) eq 'CODE')
{
warn "Merge datastruct conflict at $_[2] - key $_" if $_[0]->{$_};
$_[0]->{$_} = $_[1]->{$_};
bless ($_[0]->{$_},$_[2]) if($_[2]);
}
else
{
$_[0]->{$_} = $_[1]->{$_};
}
}
}
Dummy00001 03.01.2013 03:59 # 0
1. cpan таким г завален.
2. my() параметрами не пользовались похоже потому что производительность рекурсии "оптимизировали:" локальные переменные в функции на синтетических тестах добавляют около 10% оверхеда при рекурсии.
nyaknyan 03.01.2013 05:51 # −1
>. my() параметрами не пользовались похоже потому что производительность рекурсии "оптимизировали:"
Мало того, они там изначально были, но по этой причине были заменены и получилось говно