=()= / Говнокод #12381 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 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]->{$_};
		}
	}
}

$_[]{}

Запостил: nyaknyan nyaknyan, (Updated )

Комментарии (2) RSS

  • кто то поизвращался.

    1. cpan таким г завален.

    2. my() параметрами не пользовались похоже потому что производительность рекурсии "оптимизировали:" локальные переменные в функции на синтетических тестах добавляют около 10% оверхеда при рекурсии.
    Ответить
    • Это мой же говнокод.
      >. my() параметрами не пользовались похоже потому что производительность рекурсии "оптимизировали:"
      Мало того, они там изначально были, но по этой причине были заменены и получилось говно
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8