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

    −115

    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
    18. 18
    19. 19
    # Функция обновляет файл базы
            # Пользоваться: cut_jnl($bc, $local_ip, $jnl_string_new);
            sub cut_jnl
            {
    
                         my ( $bc, $ip_old, $string_new ) = @_;
                         open (JNL, "<$bc->{const}{base_jnl}");
                         undef $\;
                         my @all_file = <JNL>;
                         close JNL;
                         chomp($string_new);
                         $string_new .= "\n" if ($string_new ne '');
                         grep { s/.*$ip_old;.*/$string_new/sg } @all_file;
                         open (JNL, ">$bc->{const}{base_jnl}");
                         grep { print JNL } @all_file;
                         close JNL;
                         $bc->{const}{info}->debug("Update jnl, update string: $ip_old on $string_new");
    
            }

    no comments... особенно доставляют инструкции grep {}, это похлеще map {} будет.

    Запостил: SadKo, 22 Февраля 2011

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

    • Это...
      .....прекрасно
      Ответить
    • grep { print JNL } @all_file;

      суровое гавно...

      ну ведь можно ж по человечески написать `print JNL $_ for @all_file;` - не говоря уже о `print JNL @all_file` - и читабельней, и всем понятно.... но это целью наверное не стояло.
      Ответить
      • Наверное, это мы не понимаем. Походу, циклы при помощи grep {} и map {} - это новый писк моды.
        Ответить

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