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

    −118

    1. 1
    return (($publish && $filename ne '--') ? 1 : 0);

    Особенно умиляют скобочки

    Запостил: krushi, 29 Октября 2010

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

    • Все глаза с мозолил, кроме странной проверки имени файла ничего преступного не увидел
      Ответить
      • Тафтология. Выражение $publish && $filename ne '--' само по себе вернет 0 или 1. Все остальное, в т.ч. скобки -- лишнее.
        Ответить
        • Да даже если смириться со всем остальным, то даже минимум логики просит скобок вокруг ne... ;)
          Ответить
        • Кстати не задумывался, всегда писал как здесь.
          Попробовал в консоли выполнить
          perl -e "$a=1; print ($a==1);"
          Выдало синтаксическую ошибку, попробую воспроизвести прям как здесь , посмотрим что выдаст
          Ответить
          • Просто нужны одинарные скобки вместо двойных:
            $ perl -e '$a=1; print ($a==1);'
            1

            Круглые скобки и точка с запятой в конце необязательны.
            Ответить
        • провел тест накидал быстро скрипт
          #!/usr/bin/perl -w
          
          use strict;
          
          sub test {
              my $t = 1;
              return ($t==1);
          };
          print test();


          Действительно если условие истинно то возвращается 1, в противном случае вернулась пуста строка, конечно если там идет проверка по типу func() or die '', то можно и сократить ,но я все таки предпочитаю чтоб в коде было понятно что вернется из функции.

          Возможно там идет сравнение результата с какими-то константами, а не просто
          funnc() or die '';

          Я считаю все норм, какого-то унылого говна я не обнаружил
          Ответить
          • Я допустил неточность в своем первом комментарии. Логические операторы в перле возвращают не 0 или 1, а пустую строку или 1. Первая однозначно интерпретируется как "ложь". Какой смысл специально превращать ее "0"?
            Ответить
            • возможно для обязательного вывода?
              т.к. false которая =='', ничего не выводит..
              ( тогда тут строки должны быть )...
              Ответить
    • '--' умиляет однозначно
      Ответить
    • В этом коде ne - оператор отрицания?
      Ответить
    • показать все, что скрытоPerl сам по себе говноязык, почти любая программа на Пёрле может тут оказаться.
      Ответить
      • Почти любая программа на любом языке может тут оказаться. Компьютеры вообще себя не оправдали.
        Ответить
      • Вы опечатались, Вы наверное хотели сказать "php".)
        Ответить
        • показать все, что скрытоДа не, именно Perl, PHP в сравнении с ним конфетка. Всякие ассемблероподобные конструкции Пёрла делают его говноязыком.
          Ответить
          • Да уж, задолбал этот ассемблер с его регулярными выражениями, знаками препинания и контекстными переменными!
            Ответить
            • показать все, что скрытоДа, регулярки - это сила! :)
              #!/usr/bin/perl -w - вообще шедевр. Типа интерпретатор пёрла должен стоять только там :)
              Уж куда читабельнее EAX какой-нибудь вместо $_ :)
              Ответить
              • шебанг это конечно говнорешение, но как это относится к перлу?
                так что с критикой ты обосрался, перейдя на файловую систему

                а знаешь как москали в виндах /usr/bin называется? "Program Files"!
                Ответить
                • в виндах нет аналога бин.)))
                  в program files лежат папки с названием производителя софта, что бы пользователю надо было знать не только название программы, но и название производителя.

                  кошмаршный пиздец "documents and settings" (который к тому же по разному назывался на разных локализациях операционки!!) они победили, а вот program files -- нет
                  Ответить
                  • Ну здрасти!

                    > в виндах нет аналога бин.)))
                    даже sbin есть, но ни та, ни другая директория не обязана быть плоской (см. ниже про гайдлайны)

                    > лежат папки с названием производителя софта, что бы пользователю надо было знать
                    Казалось бы, какая трогательная забота. Но это всего лишь гайдлайны для вендоров, которые, кстати, многими говновендорами по сегодняшний день не соблюдаются

                    > "documents and settings" ... на разных локализациях
                    ЛОЛШТО?

                    > а вот program files -- нет
                    Хотя кроме GNU make до этого пробела никому нет дела, здесь отчасти согласен см. http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx#security_remarks http://www.securityfocus.com/columnists/301
                    Ответить
                    • 1) смысл sbinа в том, что бы быть плоским, что бы добавлять его в пасс. Разве все бинарники в program files добавлены в path?:))
                      то-то!

                      2) мну видел локализацию оного в каком-то романском языке (кажеца испанском).

                      Но папку "рабочий стол" я видел сам лично, правда в windows 98.
                      Ответить
                      • это будет мусорно и супротив гайдлайнов, но вполне возможно свалить утиль в кучу, прописать путь и получить мусорный аналог /usr/bin (винды не без косяков, но всё же в настоящий момент более упорядочены)

                        RE: /home
                        папки - в шелле, на файловой системе - директории (мы это недавно в рамках грамматического нацизма обсуждали, я помню), так всё-таки: видели или показалось? :-)
                        Ответить
                        • в бине делаются симлинки)

                          про упорядоченность не смешите -- в винде есть реестр) правда сейчас есть тенденция им не пользоваться (микрософт говорит что это оно изобрело метод xcopy, и отказ от реестра))).

                          видел.
                          как найду -- дам ссылко.
                          Ответить
                          • симлинки-не симлинки, бинарь доступен как /usr/bin/foo где на самом деле - не важно

                            > про упорядоченность не смешите -- в винде есть реестр)
                            к чему бы это?

                            > правда сейчас есть тенденция им не пользоваться ... xcopy, и отказ от реестра
                            ЛОЛШТО? возможно вас встревожила ложная тревога, в связи с тем, что в 6.х таки запретили писать (в обоих смыслах) в директорию с бинарем

                            да-да, пруф или не было :-Р
                            Ответить
              • 1) шебанг -- это к никсам, перл тут непричем вообще
                2) EAX может значить что угодно, в зависимости от желания программиста (это -- регистр общего назначения), а $_ в каждом конкретном контексте значит вполне очевидное.
                3) регулярки это действительно сила.
                Ответить
                • Ага, необходимость ставить скобочки {} везде, где только можно - просто замечательно, повышает читабельность :)

                  Отличный оператор goto для реализации сложных ветвящихся алгоритмов :)

                  Всякие супер символы перед именами переменных, типа $, @, %, & - их назначение очевидно и интуитивно понятно. Ассемблер со своими EAX отдыхает :)

                  Супер читабельные переменные, типа $_, $1, $&, $`, $', $+, $*, $., $/, $|, $,, $\, $", $;, $#, $%, $=, $~, $-, $^, $:, $?, $!, $@, $$, $<, $>, $(, $), $O, $[, $] - назначение этих и других встроенных переменных очевидно из их названия. :)

                  Регулярные выражения, отдельная тема. Настолько очевидные конструкции, что рекомендуется их использовать везде, где только можно прибегнуть к ним, а не к другим средствам :)
                  Ответить
                  • дамы и господа, демонстрация дохуя логичности:
                    <?
                    $a=array(1,2,3,4,'opa'=>'nezdan4ik',);
                    $a[]=100500;
                    $a[]='lol';
                    foreach($a as &$b) print $b.' ';
                    print "\n";
                    foreach($a as $b)  print $b.' ';
                    /*
                    1 2 3 4 nezdan4ik 100500 lol
                    1 2 3 4 nezdan4ik 100500 100500 (!!!!!!!!)
                    */
                    Ответить
                    • Какой язык более говноязык, php или perl (да оба говноязыки)? А может сравним, что более говнисто, perl или bat-файлы?
                      Ответить
                      • вижу, по теме возразить нечего.
                        пиздануть и в кусты - типичное пхп поведение, во всем мире одинаково, расмус для вас спецкурсы проводит?
                        Ответить
                        • Зачем мне что-то возражать? Или стоило на бат-файлах кусок кода привести в качестве возражения? Еще раз повторю: тема про perl, при чем тут твои умозаключения, касательно говнистости php?
                          Так что это тебе нечего возразить на говноконструкции perl, разве как привести в ответ кусок кода на php.
                          Я понял, perl супер язык, не говно, т.к. есть php.
                          Ответить
                          • просто не надо лишний раз тявкать, когда по теме плаваешь: 'Да не, именно Perl, PHP в сравнении с ним конфетка'
                            выяснилось, что наоборот, говном-то пых оказался
                            Ответить
                            • Типичная программа на Перле выглядит так, как будто программист бился головой об клавиатуру; и чаще всего оно так и есть
                              Источник: http://lurkmore.ru/perl
                              Пример типичной программы на Perl:
                              `$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$«,$;,$^,$#,$~,$*,$:,@%)=(
                              $!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$»),$=++;$.++;$.++;
                              $_++;$_++;($_,$\,$,)=($~.$«.»$;$/$%[$?]$_$\$,$:$%[$?]",$«&$~,$#,);$,++
                              ;$,++;$^|=$»;`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=`

                              ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
                                  .('`'        |'!')        .('`'        |',')        .'"'.        '\\

                              echo "test... test... test..." | sudo perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}
                              <&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
                              Ответить
                              • и?

                                просто оставлю это здесь:
                                типичные программы на пхп http://govnokod.ru/php/
                                Ответить
                                • показать все, что скрытоТипичный пример регулярного выражения (проверка корректности ввода e-mail) :)

                                  http://ex-parrot.com/~pdw/Mail-RFC822-Address.html
                                  Ответить
                                  • вот оно что. банальная боль - неприятно, когда все вокруг знают и умеют пользоваться регэкспами, а ты - нет, но так это проблемы пыхошлёпов и их неспособности осилить конечные автоматы
                                    Ответить
                                    • в пыхе проверка на валидность мэйла проходит через условие контейна `@`, да arigato ?:)
                                      Ответить
                                      • в пыхе есть возможность проверять email через socket...
                                        ---
                                        Ответить
                                      • блин, ребята, уже становится грустно не столько за пыхоподобные конструкции, сколько за тех, кто выказывает к ним негативное отношение.
                                        Можно подумать что Си (или java) там и тп языки программирования высокого уровня сразу и изначально зародились исключительно идеальными. Зародились сразу же со средой разработки, специально и во благо программистов.
                                        --
                                        ещё помнятся те времена когда javы и в помине не было, а к Си относились как к последнему говну, но почему-то всё равно продолжая на нём писать.
                                        --
                                        Ответить
                                        • еще раз: пых появился давно, не нужно сваливать все на молодость языка.

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

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

                                              Идите молодой человек, лучше делом займитесь. И советую выучить какой-нибудь язык кроме php, это поможет Вам понять чем программист отличается от обезъяны, и почему первому (в отличии от второй) писать на php неудобно
                                              Ответить
                                              • К вашему огорчению, владею далеко не только php.
                                                И как уже говорил относительно php, что там много косяков. Но от этого perl менее говнистым, как ни странно, не становится. И писать на perl еще менее удобно, а уж тем более сопровождать чужой код.
                                                Ответить
                                          • Пых - это не хорошо.
                                            Вот человек привёл кусочек кода, http://govnokod.ru/4478#comment50442 что он хотел этим показать?
                                            Неумение элементарно работать со ссылками или наоборот?
                                            Таки подобно можно тоже написать:

                                            echo `top`;

                                            - например, и удивляться почему это оно работает не так как вроде бы кажется.
                                            --
                                            пхп в освоении - язык, проще некуда (наверное второй после бейсика). И неудивительно, что на нём пишут все кому не лень, но пишут по-разному.
                                            С таким же успехом они могли бы написать на любом другом языке. Плохо ли или хорошо написать. Но на то, как человек выразил свою мысль в строчках кода, язык программирования влияет очень слабо. Можно сказать, что практически совсем не влияет.
                                            А влияет - мыслительный процесс (в мозге, кхм)...
                                            ---
                                            Ответить
                                            • да не плачь, никто твой похапе не обижает, просто объективно облили его 'создателей' говном.
                                              Ответить
                                              • показать все, что скрытоЗаодно и перл заслуженным говном полили чуть-чуть. А что, заслужил ведь :)
                                                Ответить
                                              • Вообще-то, мне по-большей части безразлично насколько говённый этот пых включая его создателей. Просто это не справедливо, обливать говном то, что причиной говна совсем НЕ является...
                                                Ответить
                    • Без unset($b) после первого foreach - точно нежданчик.
                      Это типичная головная боль начинающих.
                      Ссылки - они такие ссылки...
                      --
                      Говно - это не столько язык, сколько программист.
                      Ответить
                  • Скобочки {} ставит везде, где только можно только тот, кто не понимает, зачем они нужны.

                    Оператор goto есть даже в паскале и в яве, на случай если вдруг кому-то позарез понадобится. Насчет "сложного ветвящегося алгоритма" ничего не могу сказать -- не сталкивался.

                    Для ребенка, пока он не научился читать, текст "мама мыла раму" тоже нечитабелен. Предлагаю провести эксперимент. Откройте исходный код любой наугад взятой программы, которая работает на вашем компьютере в настоящий момент (начиная с браузера) и попробуйте в нем что-нибудь понять.
                    Ответить
                    • показать все, что скрытоЕсли я лет 5 назад писал на Делфи и сейчас открою любую свою программу, то без лишних усилий смогу разобраться в коде. Сомневаюсь, что без заглядывания в справочник получилось бы лет через 5 понять, для чего нужно $#, а для чего $~ и чем они отличаются.
                      Perl неплохой язык для своего времени, он дал толчок и идеи многим другим языкам, но его читабельность не соответствует современным критериям.
                      Например, что означает в бат-файлах такая переменная: %~fs0, я бы с ходу без справочника не ответил, хотя иногда приходится писать батники. А ведь конструкция очень напоминает перловкие.
                      Ответить
                      • Т.е. ключевая разница между дельфи и перлом - вы писали на 1м, но не писали на 2м. Но тогда все ваши аргументы не имеют веса. Если "писатель" не знает даже базовых конструкций языка ($# и $_ к ним относятся, а большинство остальных практически нигде и никем не используется), то нет смысла с ним спорить.
                        Перл уже долго и безуспешно хоронят (особо активные щас вдоль кремлёвской стены лежат :-) ). Может с точки зрения синтаксиса он и практически не изменился с 2000 года, но сколько всяких вкусных модулей и фреймворков появилось с того времени - не перечесть. А написание приложений в CGI-стиле остаётся уделом начинающих перловиков. ну а также истинных говнякеров, которых, впрочем, за какой язык ни посади лучше писать не станут.

                        *покормил*
                        Ответить
                        • %~fs0 - это тоже базовая конструкция бат-файлов :)
                          Ответить
                          • вообще-то .cmd-файлов :-P
                            Ответить
                            • Вообще-то не важно, что .bat, что .cmd, просто последний как бы подчеркивает отличие его от старых досовских батников.
                              Ответить
                      • >> Сомневаюсь, что без заглядывания в справочник получилось бы лет через 5 понять, для чего нужно $#, а для чего $~ и чем они отличаются.

                        Ну как, получилось?
                        Ответить
                    • > Скобочки {} ставит везде, где только можно только тот, кто не понимает, зачем они нужны.

                      Ну и как написать условный оператор с одним оператором в теле без операторных скобок?
                      Ответить
                      • $value += 10 if $value < 10;
                        Ответить
                        • Вот только куда лучше смотрится конструкция типа:
                          if ( $value < 10 ) $value += 10;
                          Ответить
                          • Не вижу, чем это лучше. Хотите, чтоб ничей глаз не спотыкался, пишите c отступами и фигурными скобками, они не кусаются:
                            if ($value < 10) {
                                $value += 10;
                            }
                            Ответить
                            • Вот только это никчемное нагромождение скобок. Обычно принято операторными скобками выделять составной оператор. Однако перл необычный язык :)
                              Ответить
                              • где именно "обычно"?
                                питон? нет
                                паскаль? нет
                                бейсик O_o? тоже мимо
                                хаскелл? в принципе нет сраной мутабельности

                                (ням-ням)
                                Ответить
                                • Если для вас в паскале операторные скобки обязательны, то мне нечего добавить...
                                  Ответить
                              • Если где-то и принято, то никак не в языках с C-образным синтаксисом. И понятие "операторные скобки" тут некорректно, потому что в перле (как и в яве) они еще и создают пространство имен.

                                ...Наконец, можно вполне обойтись и без них, см. выше.
                                Ответить
                                • > Если где-то и принято, то никак не в языках с C-образным синтаксисом.

                                  Да еще как принято, к примеру вместо:
                                  if (a==5) {a*=5;}

                                  Допустимо (и логичнее) записать без скобок:
                                  if (a==5) a*=5;

                                  Для тех кто не знает, такое же на Pascal:
                                  if a=5 then a:=a*5;

                                  И ни каких бегинов и ендов, как хотелось товарищу xXx_totalwar
                                  Аналогично, кстати, и на Бейсике. Но я его не рассматриваю, так, к слову.

                                  > ...Наконец, можно вполне обойтись и без них, см. выше.

                                  Ну это, так сказать, через жопу.
                                  Ответить
                                  • "Google C++ Style Guide"(http://google-styleguide.googlecode.com/):

                                    In general, curly braces are not required for single-line statements, but they are allowed if you like them; conditional or loop statements with complex conditions or statements may be more readable with curly braces. Some projects require that an if must always always have an accompanying brace.

                                    Code Conventions for the Java TM Programming Language:
                                    (http://www.oracle.com/technetwork/java/codeconvtoc-136057.html)

                                    Braces are used around all statements, even single statements, when they are part of a control structure, such as a if-else or for statement. This makes it easier to add statements without accidentally introducing bugs due to forgetting to add braces.



                                    Ответить
                                    • показать все, что скрытоОчень смешной аргумент :)
                                      Любовь к фигурным скобкам, посмеялся :)
                                      Вкратце речь тут идет о том, что желательно использовать эти скобки везде, где только можно, даже если конструкции языка позволяют их не использовать, т.к. можно в будущем, добавив туда еще 1 оператор, забыть про скобки и получить жука. Смешно :)
                                      Ответить
                                      • Если помните, вы утверждали, что везде, кроме perl-а принято опускать скобки. То есть в очередной раз продемонстрировали незнание -- на сей раз стандартов кодирования.
                                        Ответить
                                        • показать все, что скрытоКаких еще стандартов, вы о чем? То, что там в google-style что-то кому-то рекомендуют, пусть засунут себе сами знаете куда.
                                          Перл без них не понимает, при том, что С++, Паскаль, Бейсик и т.д прекрасно понимают, если оператор единственный. И нет ни какого стандарта, обязывающего в С++ или Паскале везде использовать операторные скобки. Так что сами облажались. Удачи.
                                          Ответить
                                  • > через жопу.
                                    Со скобками плохо. Без скобок -- жопа.
                                    Ответить
                                    • показать все, что скрытоБез скобок все нормально. Порядок следования через жопу: сначала оператор, а затем условие, по которому данный оператор должен выполнится.
                                      А вот в правильном порядке перлу слабо без скобок понять конструкцию.
                                      Ответить
                                      • Снова мимо.
                                        $val = $val < 10 && $val + 10;


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

                                          > Снова мимо.
                                          Мимо чего? Вы хотите сказать, что в перле допустимо:
                                          if ($a==5) $a*=5;

                                          Так что в самую точку.
                                          Ответить
                                        • показать все, что скрытоСлушай, а чего я вообще что-то тебе доказываю, если ты банально не понимаешь самого языка-то :)
                                          $val = $val < 10 && $val + 10;

                                          То, что ты привел не есть аналог этого:
                                          if ($value < 10) {
                                              $value += 10;
                                          }

                                          Если $val >= 10, то мы в $val не исходное значение получим, а пустую строку.
                                          Удачи.
                                          Ответить
                                          • +1
                                            Ответить
                                          • Пардон. Нужно было:
                                            $val ||= ... вместо $val = ...
                                            Ответить
                                            • Поздняк оправдываться, если ты делаешь наиглупейшие ошибки в примитивном коде в одну строчку, то как вообще можно говорить о крупных проектах или об оценки уровня языка? Выучи для начала язык так, что бы не запинаться на элементарных вещах, а потом что-то доказывай.
                                              Удачи.
                                              Ответить
                                              • У Вас, милейший, в одном абзаце на русском как минимум две орфографические ошибки и это не мешает вам выступать.
                                                Ответить
                                                • А, так вы русский лучше чем Perl знаете. Поздравляю :)
                                                  Но вас не смущает, что я, полный дуб в перле, поправляю вас, эксперта в познании мега-языка Perl в таких элементарных конструкциях? Не уж-то я, называющий перл говном, знаю его лучше вас? :)))
                                                  Ответить
                                                • > У Вас, милейший, в одном абзаце на русском как минимум две орфографические ошибки и это не мешает вам выступать.
                                                  Если уж такая бодяга, то у вас, милейший, в одном абзаце на русском 1 пунктуационная ошибка. Ах да, автопроверка в браузере пунктуацию не проверяет. Вот же досада. Но если учесть, что уровень знания русского у вас выше, чем perl, то каков же уровень знания perl? Страшно даже представить... :)))
                                                  Ответить
                                                  • > у вас, милейший, в одном абзаце на русском 1 пунктуационная ошибка

                                                    Где? Не сочтите за труд просветить неуча.
                                                    Ответить
                                                  • Мой уровень знания Perl (если измерять его числом ошибок) сопоставим с Вашим уровнем знания родного языка. С другой стороны, мой уровень знания родного языка несопоставим с Вашим пониманием Perl-а.
                                                    Ответить
                                                    • Да, да...
                                                      > Тафтология
                                                      Тафтология она такая тафтология :)
                                                      Ответить
                                                      • Ну вот видите, русский язык совсем нетрудно выучить, просто повторяйте почаще новые слова.
                                                        Ответить
                                                        • > просто повторяйте почаще новые слова.

                                                          Если и повторять, то уж точно не за вами. А то уровня выше, чем у вас уровень знания перла, все равно не получится:

                                                          http://www.gramota.ru/slovari/dic/?lop=x&bts=x&zar=x&ag=x&ab=x&sin=x&lv=x& az=x&pe=x&word=%F2%E0*%F2%EE%EB%EE%E3%E8 %FF
                                                          Ответить
                                                          • Так и не повторяйте.
                                                            Ответить
                                                            • То повторяй, то не повторяй... Вы бы уже сами определились :)
                                                              Ответить
                                                              • Упрекая собеседника в ошибке, которую сами
                                                                повторили за ним неоднократно, Вы ставите себя в еще более глупое положение, чем собеседник. ...Боюсь, это мало поможет Вам в поиске доказательств несостоятельности Perl-а.
                                                                Ответить
                                            • > $val ||= ... вместо $val = ...
                                              Я вот не совсем понял, как вы хотите сделать, так что ли:
                                              $val ||= $val < 10 && $val + 10;
                                              Опять облажались. Такая конструкция сработает только, если $val будет 0, а не < 10.
                                              Толи язык настолько говнист, что вы не понимаете очевидных вещей, то ли...

                                              Но больше всего меня доставляет то, что кто-то тут упорно мне минусы лепет, а вам плюсы :) Я с этого тащусь. Не уж-то такой же говнокодер, который тоже толком синтаксис perl не знает, а пытается с пеной у рта доказать свою правоту? :)))))
                                              Плюсует за откровенные глупости, которые вы выдаете.
                                              Забавные эти перловщики :))))
                                              Ответить
                                              • Плюсует и минусует здесь местный призрак поне...
                                                Ответить
                                              • Может, так?
                                                $val < 10 && $val + 10 || $val
                                                Ответить
                                                • А может вы прекратите гадать, ведь опять неверно. Свой уровень познания языка perl вы уже показали. Странно, что вы беретесь рассуждать на тему того, о чем не знаете :)
                                                  Ответить
                                                  • Да какой же это perl. Perl -- это вот:
                                                    $val += 10 if $val < 10


                                                    Все просто и к гадалке не ходи.
                                                    Ответить
                                                  • да перл-фаги они такие - понапридумывать говна, да посложнее, а потом самому в нем и захлебнуться. ))
                                                    Ответить
                      • die if $ignorant;
                        Ответить
                  • 1) какие скобочки? о чем Вы?
                    2) goto не нужно использовать нигде, кроме ассемблера (там он называется jmp), однако он есть и в C и JAVA и даже в C# кажется. Просто не используйте его -- и все.
                    Уж PHP со своими регистр глобалсами и меджик квотесами помолчал бы про вредные фичи.
                    3) в пыхе тоже есть собачка -- ее читаемость Вас не смущает?
                    4) регулярки -- очень мощное средство, но что бы понять их -- нужно почитать книжку ориелли mastering regular expressions (она есть и на русском). К сожалению читать книжки умеют не все современные программисты, а в сообществе php так это даже считаестся чем-то постыдным.
                    Кстати, в PHP тоже есть поддержка регулярок.
                    Ответить
                  • Есть такой модуль English в Перле. Его подключаешь.
                    и будут такие имена:
                    $/ => $RS или $INPUT_RECORD_SEPARATOR
                    $" => $LIST_SEPARATOR

                    ну и всё в таком духе
                    Ответить
                    • Т.е. все же есть понимание, что это говнистые конструкции. Ну это не может не радовать.
                      Ответить
                      • Их долго писать. Лучше запомнить, что значит $, $\ и т.д. :-)
                        ==========
                        Вообще, каждый выбирает свой стиль. Кто-то хочет переменные с явными названиями, а кто-то — не хочет. Я выбираю второй путь.

                        Но если придется в силу некоторых договорённостей с другими людьми перейти на первый стиль, перейду.

                        Я выбираю второй путь, и это мои проблемы.
                        ==================================
                        Теперь о пользе переменной $, (разделитель элементов списка).
                        Когда надо, например, выводить большой массив, где разделитель будет какой-то произвольный символ, то
                        такая конструкция print join(<символ>, @big_array), создаст большую строку и программа может отнять много памяти.
                        (Да, потом на её месте в памяти можно ещё что-нить создать,
                        но факт остаётся фактом: программа может только увеличиваться в памяти, а не уменьшаться.
                        free в Си, только освобождает память для новых вещей, но не отдаёт обратно операционной системе).
                        ==================================
                        Ответить
                      • И всё-таки, имена у этих переменных них не с бухты-барахты, и даже не с бухты Барахты.

                        Мнемонические правила:
                        $_ — без комментариев.
                        $" — разделитель элементов, когда берёшь в двойные кавычки:
                        $, — разделитель элементов списка при простом выводе (не в двойных кавычках). Мнемоническое правило $, => print $a, $b,
                        $c;
                        $\ — символ, который ставится в конце после каждого print(по умолчанию, пустая строка).
                        Когда мы хотим поставить перевод строки мы пишем [i]print "bla-bla\n"[i]. Чтоб этого не делать каждый раз, пишем $\ = "\n"; Мнемоническое правило $\ => \n (обратный слеш => обратный слеш)
                        $/ = символ-разделитель строк при чтении файла. Мнемоническое правило: $\ наоборот.
                        $1 - Регэкспы. Выражение захваченное в первые скобки
                        $2--$99 — аналогично $1
                        $! - Сообщение об ошибке. Мнемоническое правило: восклицательный знак -> Алярм (ахтунг :-) )
                        $@ - сообщение об ошибке в eval. Мнемоническое правило:
                        eval - это такая изолированная оболочка, где всё можно.
                        (bugmenot может написать как правильно :-) )
                        @ - а в кружочке, т.е. в оболочке. Следовательно, ошибка в eval.
                        $^O - Имя операционной системы. Мнемоническое правило:
                        OSName
                        $| - сброс буфера после каждого принта. Мне моническое правило: конвейер cmd1 | cmd2
                        ===
                        Ну, а остальными я не пользуюсь, как-то без них обходился.
                        P.S. бухта Барахты: http://bit.ly/9AlavJ
                        Ответить
                      • Ах-да, мой вердикт.
                        Это говнистые конструкции — если команда выбрала юзать модуль English, иначе — нет.
                        Вообщем, говно, не говно — зависит от договорённостей.
                        Ответить
                      • Да, ещё $1 — $99 это везде принято, а не только в Perl.
                        Просто в Перл эти переменные использовать вне регэкспа.
                        Javascript:
                        Ответить
                        • var test = 'testabc'.replace(/^(.*)(.{3})$/, '$2$1');
                          test;//abctest

                          P.S. но в Джаваскрипте всё-таки можно использовать переменные $1 - $9 (не знаю сколько захватов скобок поддерживает Джаваскрипт: то ли 9, то ли 99)
                          'test'.match(/(\w{2})$/);
                          RegExp.$1;//st

                          и это удобно, к примеру:
                          if ($test =~ /<regexp>/) {
                          push @data, $1;
                          }
                          Ответить
                • кстати говоря, EAX это не что угодно, а аккумулятор
                  Ответить
                  • погодите, я с децтва помню что в AX можно хранить что угодно (в отличии например от специальных регистров типа IP). Другой вопрос что в некоторых функциях BIOS и в некоторых инструкциях он может иметь особое значение. Это например как с CX: вообще-то он обычный регистр, но для LOOP он счетчик.

                    Я не помню про 32х разрядные регистры, но подозреваю что EAX ничем не отличается от AX в смысле идеологии.
                    Ответить
                    • > как с CX
                      counter же

                      > некоторых функциях BIOS
                      это уже прикладнуха :)

                      > он обычный регистр, но для LOOP он счетчик
                      у регистров общего назначения A, B, C и D есть более (цикл со счетчиком работает только с C) или менее (сложение работает со всеми регистрами, но использование операнда A дает короткие опкоды) выраженное специфическое назначение

                      > EAX ничем не отличается от AX
                      X - расширение до 16 бит, E - расширение до 32 бит
                      Ответить
                    • Изначально, ЕМНИП, в первых процессорах серии, в аккумулятор нужно было грузить некое значение, которое собирались складывать с другим, сравнивать и всё такое. Операция неявно подразумевала, что один из операндов будет там. Результат по большей части тоже возвращался в аккумулятор.
                      В качестве пережитков частично сие сакральное непотребство осталось. Например, команда mul/imul ожидает наличия одного аргумента в ax, результат возвращает в пару dx:ax. Кроме того, по соглашениям, функции в Windows API (возможно, что и все-все-все остальные, никогда не интересовался) возвращают указатели, int'ы и даже bool'ы именно через eax.
                      Почти аналогичные тонкости есть у регистров b, c и d. B как-то мистически связан с "базой" (вроде как "базовый регистр"), он был нужен для вычисления адресов относительно базы. Про C упоминали выше. D был регистром данных, но, надо вспоминать, чем и как.
                      Ответить
          • >> ассемблероподобные конструкции Пёрла
            ггг
            Ответить
          • Не всегда.
            На перле можно писать и страшно, и не страшно.

            Есть гики, которые пытаются сильно сократить код, из-за сокращений получается получается страшный код. Вот такую славу они перлу сделали.
            Ответить
            • Можно-то можно, но перл сам по себе помойка. И подталкивает именно к говнокодерству. if (ref($var) eq 'ARRAY') - вы же понимаете, что это не просто так.
              Ответить
              • ну хорошо, давайте поспорим.
                Чем "if (is_array($var))" лучше "if (ref($var) eq 'ARRAY')" ?

                Я делаю "print ref($var)" и вижу сразу на какого типа переменную ссылается ссылка.

                А что я вижу, когда вывожу is_array($var)?
                Здесь я могу только определить ссылается ли ссылка массив или нет.
                Ответить
                • я намекну: фраза "проверка по тайтлу" вам не о чем не говорит?
                  Ответить
                  • Вы про слово "array" в названии "is_array"?
                    Если да, то я скажу, что в перле, помимо массивов, есть ещё и другие типы.
                    Ответить
                    • а почему б тогда не сделать оператор для проверки принадлежности к классу... ах да, забыл, классы там тоже на коленке сделаны, ну тогда вы правы - лучше уж так.

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

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

                        use DateTime;
                        my $d = DateTime->now;
                        $d->isa('DateTime');
                        Ответить
                      • >оператор для проверки принадлежности к классу.
                        Через ref и с классом можно сравнивать.

                        package Test;
                        sub new {
                          return bless (\my $i);
                        }
                        1;
                        
                        package main;
                        my $var = new Test;
                        print ref($var);


                        Вывод:
                        Test
                        Ответить
                        • ну и зачем вы это написали. то что строки можно сравнивать я как бы в курсе. вы невнимательно прочитали мой пост.
                          Ответить
                          • Да нет, я внимательно прочитал.
                            Значит неправильно понял фразу "оператор для проверки принадлежности к классу."

                            Но, по крайней мере, у классов можно использовать метод isa, как написал Krushi
                            Ответить
                        • показать все, что скрытоvanished
                          Ответить
          • показать все, что скрытоНалетели фанаты Perl'а в защиту данного недоязыка :)
            Он был неплохой язык для своего времени. Но его время уже прошло :)
            Ответить
            • на перле (в отличии от пхп) впринципе можно писать красивый код
              Ответить
            • >perl - недоязык
              вот это ололо, тогда пых стыдно даже препроцессором называть.
              перл хотя бы создан лингвистом, а кто авторы у похапе? два жида и какой-то расмус. наговнячили 'язык' не зная про лексический скоп.
              Ответить
              • Если речь о Web, то тут PHP однозначно лучше подходит, т.к. специально для этого и создавался. А если не о Web, то не пойму, с чего такой интерес сравнивать Perl и PHP? Или его просто больше сравнить не с чем? Ну с QBasic, пожалуй, можно еще сравнить или с BAT-файлами.
                Ответить
                • пхп, эта квинтэссенция говнокода, никогда не был годен для веба, кто вам это в бестолковку вдолбил?
                  начиная с того, что он никогда не проектировался - он 'вырос' из пары скриптов на перле (нежданчик, да?) очень тупым накладываем фичек и заканчивая исторически сложившимся прививанием говностиля: кавычки, глобальные переменные, смешение логики и представлений и тд и тп
                  Ответить
                  • Не спорю, что в php многое не продумано, и многие на нем говноскрипты создают. Но при чем тут PHP, если речь о Perl? Т.е. если сравнили его с php, давайте сравним еще и с qbasic и с bat-файлами (наиболее близкое к нему по идеологии :)
                    Ответить
                    • http://bit.ly/alWWPz
                      Ответить
                    • мне вот интересно стало, вы что, ни разу батника не видели, если так упорно пытаетесь сравнить специфические командульки с языками программирования?
                      Ответить
                      • показать все, что скрытоА если его больше не с чем сравнить, что же тогда делать? Вот просто нашел для сравнение то, что как раз его уровню соответствует, иначе сравнение становится некорректным.
                        Ответить
                        • Про батники не знаете столько же, сколько и про Perl, amirite? :-)
                          Ответить
                          • Не советую оценивать уровень человека, о котором тебе ничего не известно. Есть аргументы - высказывай. Нет - нет.
                            Я же не оцениваю твой уровень познания перла или батников, т.к. нет для этого почвы.
                            Ответить
                            • > ничего не известно
                              Ну почему же?
                              с перлом вы уже отличились,
                              знание батников продемонстрировали,
                              на уровень в qbasic намекнули
                              Ответить
                              • Требуете порцию пищи что ли? Не буду кормить...
                                Ответить
                                • мы вроде бы вас кормим в этом треде, разве нет?
                                  Ответить
                                  • А вот что-то сами кушать запросили. Али не заметили?
                                    Ответить
                    • perl -- отличный язык для работы с текстом и отчетами и ужасный для написания на нем например трехмерной стрелялки.

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

                      процессор cmd отличный язык для написания программ из двух строк, и ужасен для всего остального.

                      php -- прекрасный язык для написания одной странчки, выводящей в веб какую-то готовую информацию (например результат одного SQL запроса) и ужасный для всего остатльного.
                      Программа на php в которой более ста строк или более пяти файлов почти наверняка является дерьмом)
                      Ответить
                      • да и вообще скоро все умрём...
                        Ответить
                      • да боже ж мой! опять qbasic.
                        так вот, qbasic это всего лишь часть интерпретатора/π-компилятора бейсика из Microsoft`овского семейства Quick xxx, поставляемая как value add с виндами потому что дядюшка Билли в силу исторических причин жутко им гордится.
                        Ответить
                  • Ох, мусье, Вы однозначно правы. Даже в природе разделение логики и представления выражено предельно явно.
                    Мужчина и Женщина
                    Ответить
                    • лолчто?
                      где тут разделение?
                      Ответить
                    • таки да - предельно и явно
                      ааа.. мы же про php - этого гермафродита, этого мутанта скрещенного с ужом и ежом - одновременно троеполое существо. тогда - нет.
                      Ответить
                      • да-да, про мутабельные (искусственно созданные праотцами php) отклонения, которые по своей страшной природе не дают, понимаете ли, этой созданной квинтэссенции недоразвитых нервных клеток "сгодится для вэба".
                        http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_august_2006.php
                        --
                        И да, кстати, почему обходят стороной ASP?
                        Ответить
                        • ололо 2006 даже смотреть не буду
                          может дать статистику за 1986?
                          Ответить
                          • давайте уж за 1886...
                            я всё хочу донести до вас мысль, что особенности программиста отражаются на программе существенней, чем особенности языка.
                            Что столь "непредназначенный для вэб" язык как php - в этой самой "вэб" один из самых популярных. Если проект не слишком сложен (а таких миллионы), то php гораздо более подходит чем другие.
                            Не называйте это говноязыком, если он не способен реализовывать большие проекты. Своё предназначение он с лихвой оправдывает и окупает.
                            Если Вам нужен проект посложнее - не используйте php, используйте asm.
                            Или если Вам нужен быстрый доступ к данным, откажитесь от mysql, внедряйте elliptics.
                            А ещё лучше придумывайте своё.
                            --
                            Ваши изречения напоминают банальные рассуждения банального пользователя, который не в силах реализовать своё для себя, только и может, что на чём свет стоит, ругать производителей продуктов и услуг.
                            Ответить
                            • >один из самых популярных

                              миллионы мух не ошиблись

                              >Если проект не слишком сложен (а таких миллионы), то php гораздо более подходит чем другие.

                              начнем с того, что за эти самые миллионы 'проектов' платят по паре енотов за пучок - Нищеброд-Business Inc. во всей красе, а вы все еще думаете, что вэб-разрабы боги во плоти? lol'd

                              >более подходит чем другие.

                              и в же это выражается?

                              >Если Вам нужен проект посложнее - не используйте php, используйте asm.

                              картинку с петросяном нагугли.

                              ваши изречения напоминают рассуждения банального раба пхп, банально уязвленного и ринувшегося в священный вар подтирать анус расмусу и остальным.
                              Ответить
                              • http://govnokod.ru/4478#comment50722
                                второй абзац...
                                --
                                Вы очень рьяно атакуете отдельно взятый язык. Основной Ваш довод - "что это говно".
                                Знаете, как-то малоубедительно...
                                Если я хочу на Луну слетать, я же не сажусь на велосипед. Это будет выглядеть глупо, не находите? Но это ещё не значит что велосипед -говно.
                                Вот если чел всё-таки воспользуется подобным транспортом для полётов (кхм). И при этом ещё будет громко ругаться: "Кто придумал этот велик?!.". То это скорее говорит, об особенностях ЕГО мыслительного аппарата, а не о говнястости транспорта...
                                Надеюсь популярно объяснил?.
                                :)
                                Ответить
                                • так все его недостатки уже давно озвучены и обсосаны со всех сторон (уж профессиональному пхпшнику о них не знать?)

                                  >Если я хочу на Луну слетать, я же не сажусь на велосипед

                                  молодой человек, про это я здесь говорил еще до того, как вы про этот ресурс узнали,
                                  потому и не видели с++ вары (это к реплике: Вы очень рьяно атакуете отдельно взятый язык.)
                                  Ответить
                                  • Только не надо доказывать, что перл, поощряющий такое: http://govnokod.ru/4506
                                    есть конфетка. Говно говном ведь язык.
                                    Ответить
                                  • По-вашему, видимо, выходит, что причиной говнокодов является язык программирования, а уж никак не авторы кодов.
                                    Авторы ведь такие бедняжечки, ("с чем мне приходится работать?!"), и совсем ни при чём, во всей говнястости программы виноваты только разработчики языка программирования и сам язык.
                                    Уж никак не косолапость пишущего...
                                    Ответить
                                    • все виноваты: и авторы алогичного говна, и пользователи без тени мозгов
                                      Ответить
                                      • да, Ваш никнейм как бы намекает :)
                                        настоящий totalwar
                                        :)
                                        Ответить
              • Само название Perl как бы намекает. Пернуть на нем можно, можно выдать какой-нибудь перл, согласен. А на что он еще способен? :)

                Пример CGI-программы на батнике:
                @echo off
                echo Content-Type: text/html
                echo.
                echo ^<html^>
                echo ^<body^>
                echo Hello, World!
                echo ^</body^>
                echo ^</html^>

                Что как бы намекает :)
                Ответить
                • Вас в детстве программист на perl укусил?
                  Ответить
                  • А вы что-то против батников с CGI имеете?
                    Ответить
                    • Это безумие.
                      Ответить
                      • Вас в детстве программист на cmd укусил?
                        Ответить
                        • это не вас недавно упоминали как "программирующего на скриптах"?
                          Ответить
                          • Это где такое? Ни когда не слышал...
                            Ответить
                            • в комментах мелькало не более декады назад
                              Ответить
                              • Ну так ссылку приводите, о чем речь вообще, не пойму...
                                Ответить
                                • Let me google that for you...
                                  Ответить
                                  • ну так и нефиг херню писать, если сами не понимаете, о чем пишите. ляпнули херню, и теперь голову в песок. тут и гугл не поможет, ибо не было того, о чем говорите.
                                    Ответить
                        • Я в детстве тоже думал, что если я пишу батники для разных вещей, и они чуть сложнее перечисления команд, то я суперкрут.
                          А потом как-то повзрослел.
                          Ответить
                          • Судя по всему, не так давно вы от туда (из детства, в смысле). Уж больно часто на него ссылаетесь, память еще свежа. Но это хорошо, молодость - это всегда плюс, можно изучать новые технологии, все еще впереди ;)
                            Ответить
                            • И родной язык заодно.
                              Ответить
                              • А вы перл уже подучили? Больше не будете в элементарном ошибаться?
                                Ответить
                                • кстати это еще раз наглядно демонстрирует, почему всякие хитрожопые конструкции - зло.
                                  Ответить
                                • Да, подучил. Вы еще принимаете экзамен?
                                  Ответить
                                  • > Тафтология.

                                    Да, тафтология, тафтология :))
                                    Ответить
                                • Да, погуглил немного, теперь знаю немного больше. А Вы, Мэтр, еще принимаете экзамен?
                                  Ответить
                            • Последний раз батник я писал в 98-м году. Если начнёте детектить школоту направо и налево, я в этом участвовать не буду. Оревуар.
                              Ответить
                              • От чего же такой интерес к детству в вопросе? Уже неоднократно о детстве речь заходит.
                                Кстати, батники с 98 года немного изменились :)
                                Ответить
                                • К вопросу о несерьёзности выдвигаемого предмета обсуждения. Для смеху, конечно, можно html-output делать таким образом, но это только для смеху же.
                                  Ответить
                                  • Ну так ради шутки же это и было сказано. :)
                                    Ответить
                • perl называется так, потому что изначально его сделали для работы с текстом и отчетами (практикал экстракшен энд репорт лэнгвич).

                  Ладно, думаю что спорить бессмыслено.
                  Достаточно посмотреть на сообщество перловиков (это будут бородатые юниксоиды) и пхпистов (это будет школота) и все станет понятно
                  Ответить
                  • показать все, что скрытоА юниксоиды всегда очень болезненно реагируют, когда их любимчика, пусть и оправданно, говном назовут.
                    Мне вот побоку, что php говном называют, т.к. я реально смотрю на вещи и соглашаюсь со многими доводами, более того, когда еще не было 5-й версии php, я его сам активно говном называл.
                    Вот только в чем прикол, от того, что php говно, perl меньшим говном не становится :)
                    Ответить
        • Не, он говорит не о перле, а о каком-то ему одному знакомом "пёрле".
          Ответить
      • если Вам непонятна программа на перле - нехуй писать, что это говноязык, простите.
        Ответить
    • Ох щи... как славно покормили господина Arigato
      Ответить
      • >господина
        много чести
        показалось, что это школоло развлекается, погуглил - действительно, осенние каникулы в разгаре
        Ответить
      • у Arigato сегодня бенефис, без сомнения
        Ответить
    • холиварчик такой, холиварчик.
      Ответить
    • ой раскормили... расцвел ололо на говнохарчах )
      Ответить

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