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

    −125

    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
    while (<>)
      {
        chomp;
        s/\r$//;
        next unless $_;
        my ($tag, $value) = split / /, $_, 2;
        die "Font is not fixed width\n"
          if $tag eq 'SPACING' and not $value =~ /[CM]/i;
    
        $currentchar = $value if $tag eq 'ENCODING';
        $minchar = $currentchar if not defined $minchar
          or ($currentchar < $minchar && $currentchar >= 0);
        $maxchar = $currentchar if not defined $maxchar
          or ($currentchar > $maxchar && $currentchar >= 0);

    И дальше в том же духе...
    Взято из файла bdf2gdfont.pl

    Запостил: Arigato, 01 Ноября 2010

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

    • По существу надо, а не потому, что перл не нравится.
      Если считаешь перл говноязыком, то пости на сайте "Говноязык".
      А здесь сайт "Говнокод".

      Но он не говноязык.
      Хоты бы потому:
      PHP:
      $i = -100;
      for ($i = 0; $i <= 100; $i++) {
      }
      print $i;//выведет 100
      ===
      Perl:
      my $i = -100;
      for (my $i = 0; $i <= 100; $i++) {
      }
      print $i;//выведет -100
      ==
      В тоже время если в цикле "for" уберу слово "my", будет как в PHP
      Ответить
      • Это особенности языка. К тому же тут речь про perl и ваше замечание на счет php вообще не к месту, постите это в разделе про php.
        Если, по-вашему, это не говнокод, то мне вас жаль. Взять хотя бы это:
        chomp;
            s/\r$//;
            next unless $_;


        > print $i;//выведет 100
        Да и вы ошиблись. Выведет 101. Так что не знаете языка, а лезете в спор :))))
        Ответить
        • Ну ошибся, 101, ссори.
          У меня, кстати, было два плюса. Догадываюсь, кто отминусовал))

          Насчёт этого:
          chomp;
          s/\r$//;
          next unless $_;

          Мб, говно, ибо заставляет думать каким переменным я обращаюсь.
          Я так лично не пишу, я использую явные переменные. Если только не надо написать быстренькое приложение в 1-3 строчки, для себя, вот тут это полезно.

          В перле:
          $var =~ s/234/abc/g;

          PHP:
          preg_replace($var, '/234/g', 'abc');

          В перле круче.
          Ответить
          • > У меня, кстати, было два плюса. Догадываюсь, кто отминусовал))
            Да я уже заметил. В этом разделе перловщики друг другу плюсы раздают по делу и не по делу, даже когда явные ляпы со стороны перловщика, его забрасывают плюсами.
            А не перловщика забрасывают минусами, не зависимо от того, о чем идет речь, даже если он и прав.
            Так что объективность данных оценок = 0.
            Ответить
            • Про объективность оценок, она может быть нулём, не только здесь.
              Но ваще везде, где идёшь против большинства.

              Так, к слову.
              Ответить
              • Ну я уже понял. Всем перловщикам по плюсу, даже если они хуже меня в перле разбираются (как в соседней ветке есть такой представитель, что мне приходится его код на перле все время поправлять, при том, что он пытается доказать, что перл - это круто). Зато он отгребает плюсы, потому что говорит, что перл - это круто, хотя сам плавает в синтаксисе. Забавно :)))))
                Ответить
                • Вы не поняли самого главного: что над Вами иронизируют, подкидывая дурацкие булевы выражения с одной единственной целью: понаблюдать, как вы будете раздуваться от чувства собственной важности, разоблачая то, что перлом-то вовсе и не является. А смайлики в конце каждой Вашей безапеляционного утверждения -- лишнее доказательство нехватки чувства юмора. Сочувствую. Удачи.
                  Ответить
                  • Да ладно оправдываться. Элементарных конструкций не понимаете, это вы уже показали.
                    Ответить
                    • Круши сказал: "Вы не поняли самого главного: что над Вами иронизируют"

                      Не знаю про кого он. Скажу: "я над вами не иронизировал".

                      Это так, к слову, чтоб правда восторжествовала.
                      Ответить
                  • это про меня? Э-э, я не иронизировал вообще-то.
                    Ответить
                    • Нет, вы тут ни при чем, это было в другой ветке.
                      Ответить
        • Короче, "chomp; s/\r$//; next unless $_;" в продакшене говно, соглашусь.
          Надо юзать явные переменные.
          Но для себя неявные переменные использовать можно.
          Ответить
        • s/\r$//;
          - это говно в реализации перла под цигвинам. и одна из основных причин почему я цигвин избегаю что сил. но есть народ кому приходится там работь. и приходится вот такие хаки делать.
          Ответить
    • был бы этот же код на пыхе - было бы столько же плюсов.
      Ответить
      • так нет в том коде выше ничего особенного. простые проверки. не больше.

        это даже и кодом то назвать сложно. бо логики там никакой нету. смеятся не с чего.
        Ответить
        • ну выше уже упомянули "chomp; s/\r$//; next unless $_;" . причем это тот случай когда сам перл поощряет такой стиль.
          Ответить
          • показать все, что скрытоЛюбая конструкция на перле не может быть говном, ведь это же ПЕРЛ!
            Ответить
            • как и для перла, так и для подавляющего большинства нишевых языков справедливо: большая часть кода не есть ГК потому что люди использующие такие нишевые тулзы как правило знают что они делают.

              на пыхе/С++/С#/Жабе/етц ГК намного больше потому что пользователей (pun intended) всех мастей на порядок больше.
              Ответить
          • да не поощряет перл такого стиля. никогде не поощрял - и никогда не будет.

            это откровенные хаки для CygWin. не больше, не меньше.
            Ответить
          • Понимаете, такой стиль удобен, когда надо написать one-liner'ы (приложения в одну строку).

            Допустим, Винда, grep`а нету. Надо просмотреть текущий каталог и надо отфильтровать нужные строки.

            Делаю так:
            dir | perl -nle 'print if /<слово в названии папки>$/';

            Вот, в таких one-liner'ах, как раз удобно юзать неявные переменные.
            Тут код надо быстрее написать и забыть.
            Ответить
    • нашли из-за чего спорить ей богу...
      вы бы еще математиков или химиков начали шпынять за "чё-то формулы у тебя больно муторные, не разберусь в них никак. по-людски не можешь что ли писать?" :)
      Не забываем, что первоначально перл был не что иное, как помесь бульдога с носорогом сплав из баша, седа, авка и прочих специфических инструментов, которыми пользовались суровые бородатые дядьки, чихать хотевшие на рюшечки и финтифлюшечки. Перл был и остался языком с суровым (к новичкам и неопытным) синтаксисом, возможно даже чересчур суровым для нашего времени, поэтому и появился Пых, более узкоспециализированный и удобоваримый.
      Пхп вырос из Перла и уверенно перенял эстафету, так что завязывайте перестрелку - она бессмысленна как и любой холивар.
      Ответить
      • перл сложноват по синтаксису (и то, только для незнающих регулярки и никсовую консоль)
        php уебищен по архитектуре, хотя по синтаксису он и проще.

        достаточно пол года плотной писанины на перле что бы начать создавать на нем удобоворимые программы (настолько, насколько без статической типизации и нормального ООП вообще их можно создавать).
        но сколько не пиши на PHP -- все равно получится говно.

        Потому что сложноватый (для современного школьника) синтаксис -- это конечно не хорошо.
        Но дерьмовая архитектура -- в тысячу раз хуже.

        И вообще: синтаксис си тоже не сахар, однако же никто не говорит что он -- говно.
        ------
        вот у питона имхо отличный и синтаксис и архитектура
        Ответить
        • > синтаксис си тоже не сахар

          Вот-вот, давайте начнем сюда куски исходников unix-ядра выкладывать и дружно смеяться. Там, ведь, и goto попадаются. А сколько непонятного!
          Ответить
          • угу, 75го года))

            кстати, любителей микрософта тоже хочу расстроить: я видел некоторые скрипты из ресурс-китов и хранимки из ms-sql.

            в редмонде тоже о красоте кода не много думают
            Ответить

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