LINUX.ORG.RU

Сегодня языку Perl исполнилось 25 лет!

 , , ларри уолл


5

2

25 лет назад, 18 декабря 1987г., программист и лингвист Ларри Уолл выпустил первую версию языка программирования Perl.

>>> Подробности

★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 4)
Ответ на: комментарий от border-radius

Да, всё-таки я был прав, перлогика понимания TIMTOWTDI - свобода удаления гланд через задний проход. Расскажи-ка, как в перловой каше программе подключать модули без use. Ну вот не нравится мне слово use, и всё тут. Как подключать по-другому? Нишвабодка!

BEGIN{
    require Module;
    Module->import(@arg);
}
BEGIN{
    local $/;
    open my $f, "< module.pm" or die "$!";
    eval <$f>;
    Module->import(@args);
}
BEGIN{
    do "module.pm";
    Module->import(@list);
}

А можно встроить сразу все в один файл:

  BEGIN{
    package Module;
    sub action{
      ....
    }
  }

  package main;

  BEGIN{
    Module->import(@list);
  }
    
  ...

Общий загрузчик модулей можно например вынести так (пусть на базе eval):

  BEGIN{
    push @INC, sub{ ..._eval_based_loader_code_...};
  }

  require Module1;
  require Module2;
  ...

Ну а с одним только eval при достаточно развитой фантазии можно много всякого наколбасить включая realtime-генераторы кода на базе PPI. Примеры сам придумаешь.

anonymous
()
Ответ на: комментарий от anonymous

Братишка, ты пишешь тонны текста, которые оппонент явно не читает. Бросай эту фигню и возьми уже меня в ученики!

fero ★★★★
()
Последнее исправление: fero (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это я кстати лишь навскидку перечислил. А есть еще «другие» загрузчики модулей включая целую XS-подсистему где полет фантазии еще более TIMTOWTDI'шный поскольку там кроме возможностей Perl вам предоставлены возможности Си. Хотя Си код можно и заюзать не вваливаясь на уровень XS. Красота.

А ещё «в стойле принято» набирать текст на клавиатуре, в крайнем случае - через утилиту распознавания голоса. Элитарные швабодные перлооригиналы, видимо, пишут закорючки, замыкая биты на шине данных тумблерами. Можно, но зачем?

Хрень эту зачем пишешь? Тебе уже давно все разложили как надо. Даже за однострочник все перекопали вокруг. Тебя баттхерт все еще не отпускает?

anonymous
()
Ответ на: комментарий от fero

Братишка, ты пишешь тонны текста, которые оппонент явно не читает. Бросай эту фигню и возьми уже меня в ученики!

Я бы с радостью людей пошел обучать, но неблагодарное СЕГОДНЯ это дело. Однако мне надо будет как-то вернуть должное обществу за то что в свое время общество выходило настоящих Мастеров - людей которые меня обучали (выходцы еще из старой школы, СССР). Ничего обещать не могу, время покажет.

anonymous
()
Ответ на: комментарий от anonymous

Какой code review, вы о чем? Тут один из адептов перла на говно изошел, доказывая, что форматирование кода это для быдла в стойле.

Ты не разобрался основательно в предмете дискуссии. Я не это рассказывал. Либо разберись - либо помалкивай. Не нужно новых клоунов - сегодня цирк дают фанаты питона. А я лишь зритель, который пока еще активно с ними вступает в контакт, даже несмотря на то что клоуны отчасти бездарные, отчасти безногие с примитивными и скучными номерами.

anonymous
()
Ответ на: комментарий от anonymous

Это всё можно обобщить: «не нравится use - придумывай тонны костылей». Особенно костыль номер два (с open/eval) позабавил. Напомнило реализацию require во всяких клиентских JS-либах (через document.createElement(«script»)). И да, use != require.

border-radius
()
Ответ на: комментарий от anonymous

Ах да, ещё на тему модулей. В Питоне автоматически имя .py-файла - имя модуля, и импортировать из этого модуля любую функцию/класс/глобальную переменную/чёрта_лысого можно естественным путём. Либо неестественным (через __import__), но это требуется довольно редко, для динамического импорта. Packages из модулей деляются так же легко - добавляем в каталог файл __init__.py, пусть даже он будет совершенно пустым.

А в перле сколько мутотени нужно написать, чтоб из просто .pm-файла с набором функций сделать модуль? И можно ли это сделать не единственным способом?

border-radius
()
Ответ на: комментарий от anonymous

Какой code review, вы о чем? Тут один из адептов перла на говно изошел, доказывая, что форматирование кода это для быдла в стойле.

Ты не разобрался основательно в предмете дискуссии. Я не это рассказывал. Либо разберись - либо помалкивай. Не нужно новых клоунов - сегодня цирк дают фанаты питона. А я лишь зритель, который пока еще активно с ними вступает в контакт, даже несмотря на то что клоуны отчасти бездарные, отчасти безногие с примитивными и скучными номерами.

Коммент о code review был написан не вам, не надо так напрягаться, зритель.

anonymous
()

Вброшу к слову о Тиме Тоуди:

Perl не требует, чтобы вы придерживались какого-либо определенного стиля программирования, и не одержим идеей закрытости, как некоторые другие объектно-ориентированные языки программирования. Однако Perl одержим идеей свободы, и одна из свобод, которые Perl предоставляет программисту, это право избрать такую меру закрытости, какую он пожелает. На самом деле, Perl может обеспечить более сильную закрытость в своих классах и объектах, чем C++.

св. Ларри. Верблюжья книга, страница 358, стих четвёртый.

fero ★★★★
()
Последнее исправление: fero (всего исправлений: 1)
Ответ на: комментарий от border-radius

Это всё можно обобщить: «не нравится use - придумывай тонны костылей». Особенно костыль номер два (с open/eval) позабавил.

На башку больной нуб. Какие костыли? Вот тебе надо было думать самому, а думать приходится мне поскольку то ли ты на рефлексах торчишь то ли интеллект не удался ...

Думаем.

Представление модуля - файл. Что нужно сделать с файлом чтобы добраться до содержания? Правильно, его надо открыть. Open - конечно костыль для открытия файла, не иначе (сарказм).

Далее, что же надо с телом файла сделать? - Верно, надо его обработать/вычислить содержание. Что делает eval ? - Верно, это костыль который делает все, в том числе и носки стирает, но никак не вычисляет входной сценарии (сарказм).

Итого, мы доказали что у нас два костыля:

1. Костыль open котороый открывает файл, а надо было не открывать.

2. Костыль eval которые стирает носки, а надо было вычислить заданный код.

Напомнило реализацию require во всяких клиентских JS-либах (через document.createElement(«script»)). И да, use != require.

Твои ассоциации - твои проблемы. Но чтобы корректно формулировать мысль надо бы понять что первичныее - js или perl. Но поскольку ты активный участник из труппы циркачей (т.е. клоун), то тебе простительно. Этот номер так себе, низачет. Два балла.

anonymous
()
Ответ на: комментарий от fero

На самом деле, Perl может обеспечить более сильную закрытость в своих классах и объектах, чем C++.

Хорошая цитата. Кстати, многие пишут на perl, но так до конца и не понимают каким образом механизм perl обеспечивает еще более сильную закрытость при использовании ООЖ, не говоря уже как и когда стоит этой техникой пользоваться. Книга, кстати, очень здравая.

anonymous
()
Ответ на: комментарий от border-radius

Ах да, ещё на тему модулей. В Питоне автоматически имя .py-файла - имя модуля, и импортировать из этого модуля любую функцию/класс/глобальную переменную/чёрта_лысого можно естественным путём. Либо неестественным (через __import__), но это требуется довольно редко, для динамического импорта. Packages из модулей деляются так же легко - добавляем в каталог файл __init__.py, пусть даже он будет совершенно пустым.

Кому интересны рассказы про твое стойло в треде про perl ? Давай сразу ближе к делу.

Давай-ка так. Если ты хочешь чтобы с тобой разговаривали как с нормальным человеком - разговаривай нормально. Все твое отношение и выпады вроде «мутотени», «костыль» и т.п. абсолютно беспочвенны (за исключением твоего личной проблемы - твоего баттхерта). Если ты ведешь себя как быдло - держи все следствия. Я думаю тебе это привычно если ты такой по жизни.

А в перле сколько мутотени нужно написать, чтоб из просто .pm-файла с набором функций сделать модуль? И можно ли это сделать не единственным способом

Нисколько. Можно.

anonymous
()
Ответ на: комментарий от border-radius

Хрень эту зачем пишешь?

Тебе тот же вопрос.

Я тебе сначала указал текст а потом под ним сформулировал ряд вопросов. А ты тупо мне вернул тот же самый вопрос непонятно к чему тогда как надо было ответ.

Вот я об этом и говорю: если дать быдлу свободу то он не будет отвечать на вопрос и не будет формулировать вопрос так чтобы оппонент смог на него ответить. Все потому что в основе у него быдлонатура (эгоцентричная всегда) и он плевал на все остальное. Поэтому таких как ты надо принуждать, то есть надо заключить в такое стойло где ты будешь вынужден отвечать на вопрос и подойти к вопросу формулирования своего вопроса достаточно тщательно. Продолжая мысль ты поймешь что именно из-за таких как ты и существуют уголовный кодекс, полиция, войны. Вот и ЯП тебе нужен такой чтобы ты не смог проявить свой быдлячие привычки. То есть надо сначала все за тебя решить а потом уже в эту клетку можно тебя запукать.

anonymous
()
Ответ на: комментарий от border-radius

А в перле сколько мутотени нужно написать, чтоб из просто .pm-файла с набором функций сделать модуль? И можно ли это сделать не единственным способом?

В самом модуле добавить в начале package, в конце 1; В main натравить на него use(или require, или eval, или ещё чего-нить, что в голову взбредёт). Это много мутотени и один единственный способ?

У меня в одной программе надо читать директорию с модулями(я не знаю их названий и количество) и динамически подгружать набор определённых функций из них, так я вообще структуру формирую для этого

module_name => (
  function_name => &function
)
чтобы в дальнейшем в коде работать с ней по схеме $module_funcs{$module_name}->{$function}->();

Причём здесь я заранее знаю имена функций реализованных в модулях(есть своё API), но никто не мешает и их вычитать на стадии выполнения.

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от shell-script

В самом модуле добавить в начале package, в конце 1

Здесь неточность. В случае успеза надо вернуть статус загрузки модуля, а будет это 1 или интерпретация результата вычисления последнего выражения - это детали. Но суть в том что в случае успеха нужно вернуть ненулевой статус. А вначале модуля package можно не добавлять. Можно переключиться на контекст исполнения кода в нужный пакет и уже из него подгрузить код а статус, например, игнорировать. Вот примерно я это имел ввиду что нисколько ничего не добавили а модуль уже есть.

anonymous
()
Ответ на: комментарий от anonymous

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

shell-script ★★★★★
()
Ответ на: комментарий от anonymous

На башку больной нуб.

Не советую называть здесь кого-либо нубом и/или неосилятором. Ещё и не такие портянки реверсить приходилось.

Но чтобы корректно формулировать мысль надо бы понять что первичныее - js или perl.

Что первичнее - грузовик или трактор?

Все твое отношение и выпады вроде «мутотени», «костыль» и т.п. абсолютно беспочвенны (за исключением твоего личной проблемы - твоего баттхерта).

Естественно, ведь твой баттхёрт незаметен - он настолько силён, что его проявления сразу удаляет модератор. А беспочвенность утверждений насчёт костылей - давай адекватов позовём, пусть они скажут, костыли это или нет. open/eval или их аналоги есть в любом скриптовом языке, так что приводить это как замену директиве импорта в качестве фишки перла просто смешно.

Если ты ведешь себя как быдло - держи все следствия.

Заметь, я никого не оскорблял. И уж о том, кто здесь истинное быдло и зомби, все давно в курсе, ибо даже адекватные perl-программисты заходят в этот тред и офигевают от твоей фанатской упоротости. Видимо, перлобыдло (сюда, повторюсь никоим образом не относятся адекватные программисты) состоит из бывших мерзософт-ботнетчиков чуть более, чем наполовину.

Нисколько.

То есть package, Exporter и прочая писанина - уже «нисколько»? Ясно. Так и запишем: перлобыдло склонно отрицать очевидное.

border-radius
()
Ответ на: комментарий от shell-script

У меня в одной программе надо читать директорию с модулями(я не знаю их названий и количество) и динамически подгружать набор определённых функций из них, так я вообще структуру формирую для этого

module_name => (
function_name => &function
)

чтобы в дальнейшем в коде работать с ней по схеме $module_funcs{$module_name}->{$function}->();

Причём здесь я заранее знаю имена функций реализованных в модулях(есть своё API), но никто не мешает и их вычитать на стадии выполнения.

Мне вот немного не понятно. Почему вы не используете одну из схем (идея одинаковая)?

    no strict 'refs'; # если надо
    my $code;
    $code = Module->can('func_name'), $code->(@args);
    ...
    &{Module->can('func_name') || sub{} }(@args);
anonymous
()
Ответ на: комментарий от border-radius

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

fero ★★★★
()
Ответ на: комментарий от anonymous

Ты меня с эпплофилами и вантузятниками спутал. Явно. Все ЯП на существующих платформах изоморфны Си. Абсолютно все. Пока ты не поймешь, что твоя «свобода» - иллюзия, будешь оставаться таким же быдлом, а быдло с высоким самомнением куда хуже. И если ты думаешь, что написание однострочников на перле как-то поможет изменить ситуацию в мире, сильно ошибаешься. Для этого нужны другие вещи, выходящие за рамки данного форума. Встретимся в i2p как-нибудь, расскажу. Если тебе действительно интересно и ты действительно не быдло.

border-radius
()
Ответ на: комментарий от border-radius

На башку больной нуб.

А я тебе за дело назвал. На башку больной потому что сам не обдумал про выкладку с open/eval которую я тебе дал выше. Нуб потому что все твои рассуждения пока подобно нубу (начинающий от newbie) на поверхности. Копни ты глубже - ты бы понял всю смехотворность твоего завления «не нравится use - придумывай тонны костылей». А то что ты там портянки реверсишь - это, во-первых, сильно сомнительно и, во-вторых, ничего не гарантирует. Не переживай, есть люди кто и на пенсии выглядят как нубы - слабо понимают что происходит вокруг.

Все твое отношение и выпады вроде «мутотени», «костыль» и т.п. абсолютно беспочвенны (за исключением твоего личной проблемы - твоего баттхерта).

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

М-м? Кретинизм обоснован (кто бы думал что ты согласишься). Кто такой мудак - сходи на вики и попробуй связать с контекстом рассуждения где это было упомянуто и за что. А за быдлоида в тебе - я уже страниц тебе рассказывал про поведение и твою позицию. А я виноват чтоль что до тебя не допирает?

А беспочвенность утверждений насчёт костылей - давай адекватов позовём, пусть они скажут, костыли это или нет. open/eval или их аналоги есть в любом скриптовом языке, так что приводить это как замену директиве импорта в качестве фишки перла просто смешно.

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

Заметь, я никого не оскорблял. И уж о том, кто здесь истинное быдло и зомби, все давно в курсе, ибо даже адекватные perl-программисты заходят в этот тред и офигевают от твоей фанатской упоротости. Видимо, перлобыдло (сюда, повторюсь никоим образом не относятся адекватные программисты) состоит из бывших мерзософт-ботнетчиков чуть более, чем наполовину.

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

То есть package, Exporter и прочая писанина - уже «нисколько»? Ясно. Так и запишем: перлобыдло склонно отрицать очевидное.

Насчет нисколько я выше ответил но не тебе. Иди и читай.

anonymous
()
Ответ на: комментарий от anonymous

Структура мне нужна в дальнейшем для управления модулями(там часть модулей выполняется в потоках). Мне удобно таким образом хранить список загруженных модулей, выбирая из него нужные функции. Плюс в структуру записаны ещё дополнительные данные, касающиеся модулей, которые могут меняться в процессе выполнения. В принципе, первый предложенный вариант мне нравится, но в моём случае всё-равно придётся формировать какой-то хеш для хранения данных, одной переменной $code будет мало. Т.е. нужно не просто подключить модули, но ещё и работать с ними в дальнейшем.

К слову, тут не надо отключать strict, если я правильно всё понимаю.

shell-script ★★★★★
()
Ответ на: комментарий от border-radius

По частоте использования неочевидных конструкций

степень неочевидности конструкций прямо пропорциональна опытности разработчика. дайте посмотреть на код, написанный опытным перловиком (говно)сишнику, и первое слово, которое вы от него услышите, будет «говнокод». неговнокодом у этой категории считается вытянутая по вертикали писанина с обилием ненужный скобок. при этом они с умным видом могут выдумать свой «правильный стиль», и брызгая слюной доказывать, что $_ не нужна, а unless неочевиден и нужно обязательно писать так: if ( ! ... да, с пробелами, как в примере, иначе это, опять же, по их мнению, говнокод

chg ★★★★★
()
Ответ на: комментарий от anonymous

Серьёзно, займись своим душевным здоровьем. До твоего появления дискуссия шла вполне конструктивно.

Насчет нисколько я выше ответил но не тебе. Иди и читай.

Да прочёл уже. В модуле писанину убрали - в месте импорта прибавили.

border-radius
()
Ответ на: комментарий от chg

а unless неочевиден

Вот отчасти по этой причине я и забросил перл. Приносишь код - «перепиши, unless неочевиден». Вот именно потому, что у всех своё понимание «правильного» стиля, перл нифига не подходит для работы в команде, а потому годится, по сути, только для микродвижков, утилит и однострочников, а на чём-либо покрупнее с участием more than one way developer to do it начинается трэш, угар и содомия.

border-radius
()
Ответ на: комментарий от border-radius

Ты меня с эпплофилами и вантузятниками спутал. Явно. Все ЯП на существующих платформах изоморфны Си. Абсолютно все.

Спорно. Остюда и далее подробно и доказательно.

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

Самомнение? Ты о чем? Я лишь реагирую на поведение других. Обо мне судят люди. Быдлы обзываю быдлами за то что я им даю расклад что они быдлы. Не в первый раз. Для быдла простительно.

И если ты думаешь, что написание однострочников на перле как-то поможет изменить ситуацию в мире, сильно ошибаешься.

Если бы я так думал - да, я бы ошибался. Нафиг ерунду написал?

Для этого нужны другие вещи, выходящие за рамки данного форума. Встретимся в i2p как-нибудь, расскажу. Если тебе действительно интересно и ты действительно не быдло.

Не тянешь ты не того кто бы смог заинтересовать. У тебя наблюдаются проблемы, которые обычно наблюдаются у быдляка обыкновенного. Прямой вопрос: «Ты уже увидел эти проблемы?»

anonymous
()
Ответ на: комментарий от Deleted

Сегодня языку Perl исполнилось бы 25 лет.

Какой уже по счёту?

Хоронили perl, порвали два CPAN-а.

border-radius
()
Ответ на: комментарий от shell-script

Структура мне нужна в дальнейшем для управления модулями(там часть модулей выполняется в потоках). Мне удобно таким образом хранить список загруженных модулей, выбирая из него нужные функции. Плюс в структуру записаны ещё дополнительные данные, касающиеся модулей, которые могут меняться в процессе выполнения. В принципе, первый предложенный вариант мне нравится, но в моём случае всё-равно придётся формировать какой-то хеш для хранения данных, одной переменной $code будет мало. Т.е. нужно не просто подключить модули, но ещё и работать с ними в дальнейшем.

Я бы в вашем случае работал напрямую с our переменной `subsys_states' чтобы не связываться с другим пакетом (могут быть проблемы синхронизации данных) в пространстве того же самого пакета о котором хранится состояние, либо все вынес состояние всех модулей в отдельный пакет ..::State с процедурами управления состояними автоматов. В первом варианты сложности с перезагрузкой модуля остаются в пространстве модуля, а во втором все сложности перезагрузок сконцентрированы в одном пакете. И тот и другой варианты практикуются мной но комбинированно по подсистемам. Кстати, отлаживать очень весело - ошибки приводят максимум к отключению подсистемы которая налету исправляется и включается. Такая вот схема отказоусточивости ...

К слову, тут не надо отключать strict, если я правильно всё понимаю.

А да, проглядел. no strict 'refs' остался от варианта с eval{ &{«ASD::asd»}(@args); } который я решил в итоге не предлагать :).

anonymous
()
Ответ на: комментарий от anonymous

Ну что ж, живи в придуманном мирке «перлобогов и быдлоидов», не буду тебе мешать. Отныне всё не касающееся ЯП в этом треде буду игнорировать.

Спорно. Остюда и далее подробно и доказательно.

Интерпретаторы/компиляторы любых существующих под современные платформы ЯП компилируются на C/C++. Следовательно, всё, что можно выполнить на данных ЯП, можно выполнить на C/C++. И поэтому ни один ЯП не может давать большую степень свободы, чем язык, на котором написан его рантайм.

border-radius
()
Ответ на: комментарий от anonymous

По сути main у меня занимается только управлением. Т.е. начальная инициализация всей программы, в дальнейшем то, что должно быть в ::State, если я правильно понял вашу мысль, и корректный останов(ну и в процессе работа с сигналами и прочие накладные расходы). Непосредственно полезный функционал находится в модулях.

А вот с our-переменной не совсем понял идеи. Можно пару примеров?

shell-script ★★★★★
()
Ответ на: комментарий от border-radius

Ну что ж, живи в придуманном мирке «перлобогов и быдлоидов», не буду тебе мешать. Отныне всё не касающееся ЯП в этом треде буду игнорировать.

Да бога ради, надо было сразу так. Я точно знаю что я сильно не удобен в твоем «мире» и твой защитный ход через изоляцию - это обычный нормальный удел «тех». И, да, было бы неплохо если вы будете обращать внимание в будущем если вдруг вам внезапно начнут вдалбливать за ваши ошибки. Хотя, конечно, дело ваше. Я ничего не придумываю а лишь людей классифицирую в соответствии с их свойствами (как Карл Линней). Да и нет надобности придумывать что-либо, ибо всегда рядом найдется тот кто старается выдать свои соображения за тебя (вроде этого: «перлобогов и быдлоидов»).

Интерпретаторы/компиляторы любых существующих под современные платформы ЯП компилируются на C/C++. Следовательно, всё, что можно выполнить на данных ЯП, можно выполнить на C/C++. И поэтому ни один ЯП не может давать большую степень свободы, чем язык, на котором написан его рантайм.

Эх, скука - да ладно. Обрати внимание на следующие модули:

Inline::CPP

Inline::C

Inline::ASM

Вот я как прыгну в стек Си-шного вызова и буду использовать свобода ASM'а из под perl'а тогда как самому Си такие трюки недоступны. Или как прыгну в Си модуль и устрою порно-шапито с красоткой vtbl всем C++ - объектам сразу.

Any other comments ?

anonymous
()
Ответ на: комментарий от redgremlin

Ларри, мог бы уже и зарегаться :)

Мне до Ларри далеко ибо он очень хорошо владеет ... Си :)

anonymous
()
Ответ на: комментарий от shell-script

По сути main у меня занимается только управлением. Т.е. начальная инициализация всей программы, в дальнейшем то, что должно быть в ::State, если я правильно понял вашу мысль, и корректный останов(ну и в процессе работа с сигналами и прочие накладные расходы). Непосредственно полезный функционал находится в модулях.

Вариантов конечно море, но, да, состояние систем с процедурами управления я выношу в ::Sys::States . Состояние подсистемы HTTP с ее процедурами управления (например, там висит целый http-сервер с его «подручным» http-клиентом) выношу в ::HTTP::States . Идея тут простейшая: «программа => множество модулей» vs «система => множество подсистем».

А вот с our-переменной не совсем понял идеи. Можно пару примеров?

Ниче заумного - доступ к переменной (вам хэш нужен) пакета: perl -e'use DBI; print ${DBI::VERSION};' . Вы храните все в $main->{module}->{state1} а я в ${Module::state1}.

anonymous
()
Ответ на: комментарий от anonymous

«программа => множество модулей» vs «система => множество подсистем».

В моём случае, думаю, это будет уже неоправданным усложнением. :)

Ниче заумного

Ага, понял теперь. Таким же макаром можно и остальное смотреть. Спасибо, учту.

shell-script ★★★★★
()
Ответ на: комментарий от anonymous

Между словами «характерные» и «быдла» пропустил слово «для». Если ты из-за этого не врубился - прошу прощения. Если нет - перечитай тред.

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

Сложно сообразить? Тут все просто - быдло не осиливает perl и уходит из сообщества.

судя по обилию быдлокода - никуда они не уходят, а продолжают «радовать» всех окружающих. Часто пряча отсутствие фундаментальных знаний теории под нагромождением быдлокода. В пайоне или сишке любой дурак может отличить пузырьковую сортировку, а вот в перловке её можно замаскировать. Удобно для тех, кто кроме пузырька ничего большего не осилил.

1. Анализируем человека на предмет быдловатости.

2. Если человек быдловат то ему ограничиваем верхнюю скорость в автомобиле до 60 км/час. Более того, ему в руль встраиваем анализатор состояния который отключает автомобиль и в случае если водитель сонный, накурен, пьян, находится в состоянии повышенного эмоционального уровня или под иным кайфом.

3. Адекватным ограничитель не ставим, т.к. нет смысла.

4. Количество аварии резко падает.

Мне рассказывать как это будет работать? Или сам сообразишь?

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

drBatty ★★
()
Ответ на: комментарий от anonymous

Критерии оптимальности алгоритмов? Расскажешь что это? Сравнить два алгоритма я могу, а как определить оптимальность алгоритмов? Как бог пошлет?

тебе все тома Кнута сейчас пересказать, или сам прочитаешь?

Вот я тебе привел однострочник - там все очевидно. А ты вот неосилятор и мне несколько страниц уже выливаешь свой баттхерт только потому что для тебя однострочник неочевиден. Как быть?

кому ещё очевиден твой однострочник? ещё 3.5 фанатиков?

А если код настолько короткий (как однострочник) что форматирование практически не имеет значения. Тогда что? А если собеседник быдловатый (будет обнажать свой баттхерт и доказывать свою правоту хотя он /читай далее/ ) неосилятор, тогда как быть?

ты быдло, потому-что для тебя не интересен спор, тебе интересно доказать, что твой собеседник - быдло. IRL твой метод спора выглядит так: ты срёшь кучу говна, съедаешь, и говоришь: «а вам слабо?!». Спор выигран - все вокруг неосиляторы, а ты сытый и довольный.

drBatty ★★
()
Ответ на: комментарий от OxiD

У меня такое очущение что люди которые ругают перл за синтаксис работают в каких-то мутных конторках в которых никто не слышал про code review и про соблюдение стиля кодирования

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

Ну и еще часть из них просто не знает перла (одни только крики про то что в нем много операторов чего стоят. Сравните сколько команд сортирововк в перле и например в пхп).

можно ссылку на эти «крики»? А пхп ты не трогай - у них массив, это такая НЁХ, которая заменяет всё остальное. Вот и имеем Over9000 сортировок как следствие. В других ЯП столько же, только они называются одинаково.

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

правильно. Проблема в том, что у твоих фанатиков перловки, другого кода не получается. И это для них не баг, а предмет фапа.

drBatty ★★
()
Ответ на: комментарий от border-radius

Следовательно, всё, что можно выполнить на данных ЯП, можно выполнить на C/C++. И поэтому ни один ЯП не может давать большую степень свободы, чем язык, на котором написан его рантайм.

третий круг начинаешь. Про тьюринг-полноту уже было.

drBatty ★★
()
Ответ на: комментарий от anonymous

буду использовать свобода ASM'а из под perl'а тогда как самому Си такие трюки недоступны.

lolwut? man __asm__.

border-radius
()
Ответ на: комментарий от drBatty

Вот ты пишешь и пишешь а элементарное до тебя не доходит. Ты до сих пор не понял за что тебе клеймо быдла повесили.

massimus лучше меня сформулировал все твои цирковые номера:

Тебе тут Прости, но все твои словоизвержения в этом треде сводятся к циклу «я не знаю perl, поэтому я не могу прочесть некоторые примеры кода на perl, поэтому я считаю весь perl говном, поэтому я не учу perl, поэтому я не знаю perl».

PS: У тебя клинический случай. Было бы глупо с моей стороны дальше с тобой что-то тереть.

anonymous
()
Ответ на: комментарий от drBatty

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

Если бы был код ревью и кто-то вменяемый его смотрел, то не было бы проблем с write-only кодом. Такой код получается когда пишут чтобы быстрее написать или по малоопытности. И языка это почти не касается.

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

можно ссылку на эти «крики»? А пхп ты не трогай - у них массив, это >такая НЁХ, которая заменяет всё остальное. Вот и имеем Over9000 >сортировок как следствие. В других ЯП столько же, только они >называются одинаково.

Так, для справки - «в других ЯП» есть один sort которому передается функция сравнения. И он прекрасно сортирует данные любых типов, и не только из массивов. А что такое НЁХ я к счастью не знаю.

Крики где-то в начале этого топика, искать мне их лень.

OxiD ★★★★
()
Ответ на: комментарий от anonymous

Тебе тут Прости, но все твои словоизвержения в этом треде сводятся к циклу «я не знаю perl, поэтому я не могу прочесть некоторые примеры кода на perl, поэтому я считаю весь perl говном, поэтому я не учу perl, поэтому я не знаю perl». PS: У тебя клинический случай. Было бы глупо с моей стороны дальше с тобой что-то тереть.

ваша ошибка в том, что вы говорите о том, что «drbatty не знает перл, и потому, он считает его говном», но на самом деле, я не желаю знать перл потому, что перловоды пишут на перле говно. Такое говно можно писать на любом ЯП, но: на пайтоне можно писать нормальный код, и его пишут, на си тоже можно писать, и его пишут, не BF нельзя писать нормальный читаемый код, и он потому не нужен...

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

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

До встречи.

drBatty ★★
()
Ответ на: комментарий от anonymous

На форуме «Символ плюс» обещают в феврале 2013. Но, на мой взгляд, лучше всё-таки оригинал по возможности читать (разве что использовать перевод для сверки непонятных мест), язык там хороший. При переводе могут добавиться ошибки, опечатки, неоднозначности в терминологии (учитывая, что они эти сроки называли, кажется, в ноябре, получается маловато времени на вдумчивый перевод и внимательную вычитку). Ну и всякие шутки и игры слов в лирических отступлениях частично угробятся. Приятнее же читать не только с пользой, но и с удовольствием.

massimus ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.