1. Perl / Говнокод #12381

    −119

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 02 Января 2013

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

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

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

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

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