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

    −161

    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
    BEGIN
    {
        my $gGls; # Hash reference for global variables, settings.
    
        # To get a handle to access the global hash.
        sub getgGls
        {
            return $gGls;
        }
    
        # "Fasten" the script name on $gGls->{ 'gScriptName' } instead of the perlish awkward $0.
        $gGls->{ 'gScriptName' } = $0;
        
        # ...

    синглтоны для перла. (плюс польская нотация.)

    на книги по паттернам надо заставлять цеплять наклейки: brain damage caused by use of the design patterns might be permanent!

    Запостил: Dummy00001, 22 Октября 2013

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

    • показать все, что скрытоКакой багор )))
      Ответить
    • > (плюс польская нотация.)

      венгерская, блин.
      Ответить
    • показать все, что скрыто-
      Ответить
    • на книги по перлу надо заставлять цеплять наклейки: brain damage caused by use of perl might be permanent!
      Ответить
      • показать все, что скрытоне пизди
        я очень книгу про верблюда любил
        и еще пёрл за 24 часа
        я на нем в 2001м году свой первый веб чат написаол! chat.cgi
        Ответить
      • найди мне хоть одну книгу по перлу которая такой стиль рекомендует.

        это писалось С++шником, у которого случился brain damage от длительного использования дезайн паттернов.
        Ответить
        • показать все, что скрытотащемто фраза "instead of the perlish awkward" говорит именно о том, что автор нелюбит и не понимает перл, и тащит свой говностиль в чужой язык

          напоминает одного джависта который стал в питоне вручную аксессоры и мутаторы хуячить на все поля
          Ответить
        • Для перла рекомендуется стиль IOCCC. Что ещё ждать от языка, в котором поощряется написание Hello World в стиле "макака билась головой об клавиатуру", а на вопрос "чем этот язык лучше других" следуют ответы в стиле "можно написать сервер в 50 символов без единого пробела или цифры".
          Ответить
          • показать все, что скрыто"можно написать сервер однострочником":)

            На самом деле Perl был глотком воздуха в 80х для обработки логов: он точно лучше чем bash+sed+awk или c для этих целей

            И кстати тне IOCCC а OPS: https://en.wikipedia.org/wiki/Obfuscated_Perl_Contest

            Ответить
            • Он загнулся а IOCCC жив.

              Вообще язык хорош, но когда к нему пришла популярность, стало невозможным обсуждать код без "тру-перловиков", требующих заменить пять строчек кода, понятного и младенцу, на однострочник, который и с мануалом тяжело понять.
              Ответить
              • показать все, что скрытоСёма бы сказал что это проблема прыщей

                зы: вообще хватит пинать труп. Перл сыграл ОГРОМНУЮ роль в автоматизации юниксов и становлении веб-программирования времен web 1.0, за что ему ОГРОМНОЕ спасибо!

                Но сейчас на нем пишут всё меньше.

                Ответить
                • показать все, что скрыто>, требующих заменить пять строчек кода, понятного и младенцу, на однострочник, который и с мануалом тяжело понять.
                  >проблема прыщей
                  Ясен хуй. ЧСВишко же надо как-то потешить.
                  Ответить
                • показать все, что скрытоПодошёл муж, спросил, не заначены ли где у меня ватные палочки. Сказала, что у нас есть вата и зубочистки. На что он мне обиженно ответил: "Ну я ж не линуксоид..."
                  Ответить
                • > Перл сыграл ОГРОМНУЮ роль в автоматизации юниксов

                  и не только это. перл был одним из первых mainstream языков где присутствовали почти все современные фишки, типа модулей, namespaces, closures, GC, динамическое исполнение, работа с двоичными данными, слабая типизация.

                  даже тот же ORM: в первые это я увидел на перле. потому что на перле отностительно просто в рантайме структуру базы вычитать и динамически классы сгенерировать.

                  когда питонщики все еще дискутировали что хорошо, что плохо - перловцы уже этими чудесами современной техники пользовались.
                  Ответить
                  • показать все, что скрыто>современные фишки
                    >слабая типизация.
                    /0

                    Кстати, а почему она слабая, если есть операторы для строк и для чисел?

                    >closures
                    Через какую сраку они там сделаны? Через какую сраку сделаны модули (последняя строчка должна быть 1;)? Как там создать объект? Как различать член класса и объекта? Впрочем, я это уже в том самом перлосраче писал.

                    Перд возможно реально появился и раньше, но сегодня этому уебищу хорошо бы сдохнуть.
                    Ответить
                    • показать все, что скрыто>> почему она слабая
                      Потому что можно числа в строки неявно переводить

                      >>Через какую сраку они там сделаны?
                      да, через сраку

                      синтаксис у перла на любителя

                      >>сдохнуть
                      сдохнуть надо php, javascript, visual basic и mysql. Остальные пусть жывут
                      Ответить
                      • показать все, что скрыто>Потому что можно числа в строки неявно переводить
                        Каким образом?

                        >сдохнуть надо php, javascript, visual basic и mysql. Остальные пусть жывут
                        Тоже правда, но как это мешает сдохнуть перлу?

                        Пхп вполне подходит для говностраничек. Вот с фреймверками там жопа. Я не знаю зачем они там вообще нужны - не проще ли сразу питон освоить?
                        Ответить
                    • > Кстати, а почему она слабая, если есть операторы для строк и для чисел?

                      Это на случай если ты хочешь различать числа и строки.

                      > > closures
                      > Через какую сраку они там сделаны?

                      никаких срак. просто ссылки на функции + context capture. более или менее точно так же как и в С++, но только на 10+ лет раньше.

                      > Через какую сраку сделаны модули (последняя строчка должна быть 1;)?

                      Это фича, идиот: модуль может заявить что он не смог загрузится.

                      > Как там создать объект? Как различать член класса и объекта?

                      почитай perlmod & perlootut - там все описано.

                      > Впрочем, я это уже в том самом перлосраче писал.

                      Ну даже если ты смог на нём что-то написать, то это я думаю уже однозначно можно занести в достижения языка.

                      И почему говорят что перл сложный?....
                      Ответить
                      • > Это фича, идиот: модуль может заявить что он не смог загрузится.
                        А по-человечески нельзя было сделать? Хотя бы return 1...
                        Ответить
                        • ёпта. этот "1" есть просто сокращение "return 1". тот же самый принцип что и функции: возсвращается результат последнего стэйтмента. в модулях которые реально что-то проверяют там будет стоят что-типа "return pre_load_check();"/"pre_load_check();"

                          перл же динамический язык: когда модуль читается, уже что-то может исполнятся.
                          Ответить
                      • показать все, что скрыто>Это на случай если ты хочешь различать числа и строки.
                        А где их можно не различать, ну кроме подстановки в строку?

                        >точно так же как и в С++, но только на 10+ лет раньше.
                        Языки немного разного уровня.

                        >Это фича, идиот: модуль может заявить что он не смог загрузится.
                        А ну да, забыл же, что в вашем уебище нет исключений. Но почему не сделать его "успешно загрузившимся" по умолчанию?

                        >почитай perlmod & perlootut - там все описано.
                        Спасибо, я уже эту проблему решил, перейдя на питон.

                        Чем разобраться как правильно писать на этом недоязыке мне оказалось проще перейти на другой. Достижение, хуле.
                        Ответить
                        • > А где их можно не различать, ну кроме подстановки в строку?

                          операции сравнения. на самом деле можно различать везде, если надо: рефлексия существует очень давно.

                          > А ну да, забыл же, что в вашем уебище нет исключений.

                          ты забыл "die".

                          > Но почему не сделать его "успешно загрузившимся" по умолчанию?

                          потому что люди хотели фичу что бы модуль уже на фазе парсинга мог сказать что он не может загрузится? типа: проверка версий, проверка наличия внешних либ, проверка окружения, проверка версии ОС - и все остально что только можно придумать.
                          Ответить
                          • показать все, что скрыто>операции сравнения.
                            Т.е. "000" == "0"? Ну это и есть пиздец.

                            >ты забыл "die".
                            Ахаха, да, я еще помню eval / die. Но зачем, когда есть нормальные исключения?

                            Ты не понял. Чтобы модуль по умолчанию возвращал "успех" без этих 1;
                            Ответить
                            • > Т.е. "000" == "0"? Ну это и есть пиздец.

                              в чем тут "пиздец"? это как бы и есть главная фича слабо-типизированых языков: автоматическое неявное приведение типов, в зависимости от контекста.
                              Ответить
                              • показать все, что скрытоhttp://raz0r.name/vulnerabilities/simple-machines-forum/
                                Ответить
                                • и при чем тут пых?

                                  это правда что пых изначально слизал систему слабой типизации с перла. но в 2-/3-/4-х версиях они это в жопу сломали, почему в посдествии им пришлось вводить операторы строгого сравнения. и как следствие, все те баги которые за этим последовали.

                                  к перлу это не имеет отношения. (плюс, если ты хочешь, то перловый ОО, насколько б убогим он не был, позволяет реализовать строгую типизацию.)

                                  PS к слову, это одна из причин почему перл изначально и имеет разные операторы сравнения: для строк и для чисел.
                                  Ответить
                                  • показать все, что скрытоЕмае, поведение идентично перловому, вот причем.

                                    >perl -e "print '0e123'=='0'
                                    1
                                    Ответить
                                    • если ты сравниваешь числа - то это все верно. если ты сравниваешь строки - то это *очевидно* глючный код, потому что строки надо сравнивать оператором "eq".

                                      если ты даже этого не знаешь (уровень: первые 20 страниц "learning perl") то твои загоны что ты когда то на перле что-то писал это просто загоны. да что еще от 3.14дара и можно ожидать...
                                      Ответить
                                      • показать все, что скрытоА, ну тогда ты лоханулся
                                        http://govnokod.ru/14052#comment345052
                                        >операции сравнения.

                                        Без дискриминаций по нику, пожалуйста. Ты уже забыл как я тебе под анонимбом вялым по губам провел?
                                        Ответить
                                        • > А, ну тогда ты лоханулся

                                          это называется "перепутал".

                                          потому что ты и вопрос сформулировать не способен.

                                          и гонишь всякой херни немеряно. и врешь открыто.

                                          > Ты уже забыл

                                          у меня не та ориентация. на пидаров не западаю.

                                          с другой стороны, дай угадаю: ты ту же самую тупую херню постил без остановки, и т.к. ты был последним кто постил в треде, ты решил что ты "выиграл" техническую дискусию? потому что на основании квалификации, ты на ГК где-то в самых последних 10% и по другому как тупым троллингом ты ничего достичь здесь не можешь.
                                          Ответить
                                          • показать все, что скрытоЭто називается ты спиздел, петушок.

                                            >> А где их можно не различать, ну кроме подстановки в строку?
                                            >операции сравнения.
                                            Операций сравнения 2: для строк и для чисел. Где слабая типизация?

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

                                            Все-таки интересно, зачем тебя в гермашку пригласили? Немцы не хотят добровольно учить ебанутое легаси и проще оказалось гастера пригласить?
                                            Ответить
                                            • ты мудак. и идиот. я перлом профессионально уже 10+ лет не пользуюсь. как я уже пару раз в других дискуссиях и упоминал.
                                              Ответить
                                              • показать все, что скрытоПорватка треснула наконец-то. Давай, излей побольше говнеца из лопнувшей сраки :D

                                                Так чего ты его защищаешь тогда? И зачем тебя сюда пригласили?
                                                Ответить
                                                • > Так чего ты его защищаешь тогда?

                                                  я не защищаю. я просто корректирую твои ложные заявления.

                                                  если давать шанс таким пидорасам как ты лгать безконтольно - чаще просто по невежеству - то случайно может кто-то за правду принять.

                                                  это как бы и есть эффект интернета: даже такие невежды и дилетанты как ты могут очень громно и очень много вещать, как если бы они были экспертами.
                                                  Ответить
                        • >>Это на случай если ты хочешь различать числа и строки.
                          >А где их можно не различать, ну кроме подстановки в строку?
                          При работе со значениями из <input> на клиентской или серверной стороне.
                          Ответить
                          • показать все, что скрытоКакой, например?
                            Ответить
                            • Ну, скажем, есть у нас калькулятор взаимоисключающих параграфов.
                              <input name="exposure" />
                              <input name="shutter-speed" />
                              <input name="aperture" />

                              Пользователь поменял значение диафрагмы - скрипт взял aperture.value, неявно скастовал в число, и добавил логарифм квадрата относительного изменения к exposure.value (тут в JS возникает питушня из-за того, что число пойдёт в строку под действием "+"). Пользователь поменял exposure.value - скрипт как-то раскидал изменение по оставшимся параметрам (а тут уже нужно умножение, поэтому питушни не будет).

                              На серверной стороне - какая-нибудь валидация количеств выдаваемых результатов. Пользователь говорит: ?q=pituxi+jpg&nimages=100500, а сервер ему "100500 - много, мы можем только 1000, у нас сервер не резиновый".
                              Ну или пример вышеописанного калькулятора, если вдруг формулы засекречены.
                              Ответить
                  • показать все, что скрытоДа, перл повлиял всем этим на скриптовые ЯПы 90х (руби, питон, пхп)
                    И на прграммистов тоже повлиял)
                    Ответить
                    • да. перло-наследие живет.

                      в других новостях, Перл6, не смотря на официальный запуск, все еще мерт.
                      Ответить
                      • показать все, что скрытоЗабавно кстати отследить момент, когда ЯПы меняются.

                        Например в 2000м веб это всегда был перл (ну по крайней мере в России)
                        в 2002м уже мог быть PHP. В 2009м вероятнее всего это был бы Ruby. Сейчас питон или nodejs.
                        Ответить
                        • > nodejs

                          а это вообще забавная вещь: кто-то написал интерпретатор перла "perlito" (и причем единственный альтернативный и достаточно компетентный) для nodejs. это реально транслятор перла в JS.

                          если кто-то хочет - наконец таки - JIT для пятого перла, то перлито это реальный вариант.
                          Ответить
    • Расскажите автору про English.pm
      Ответить

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