<?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0">
        <channel>
            <title>On Perl</title>
            <link>http://onperl.ru/onperl/</link>
            <description>блог о языке программирования Perl и его сообществе</description>
            <language>ru</language>
            <copyright>Copyright 2010</copyright>
            <lastBuildDate>Thu, 11 Mar 2010 16:26:25 +0300</lastBuildDate>
            <generator>http://www.sixapart.com/movabletype/</generator>
            <docs>http://www.rssboard.org/rss-specification</docs>
    
            <item>
                <title>Команда rmfunc в job-сервере Gearman</title>
                <description><![CDATA[<p>Те, кто использовал <a href="http://onperl.ru/cgi-bin/mt/mt-search.cgi?blog_id=1&amp;tag=gearman&amp;limit=20">Gearman</a> в работе, наверняка сталкивались с ситуацией, когда разрабатываемый воркер либо падает во время отладки, либо по забывчивости не был подключен, но при этом приложение уже начало посылать запросы на выполнение задач, обслуживаемых этим воркером.</p>
<p>В <a href="http://onperl.ru/onperl/2009/12/gearman-4-monitoring.html">статусе</a> job-сервера такие задачи видны с «перекошенным» счетчиком:</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>new_feature <span style="COLOR: #008000; FONT-WEIGHT: bold">14</span> 0 0</p></blockquote></tt>
<p>То есть запросы на выполнение этой задачи в очедери уже есть, но обслужить ее некому. Непрятность здесь может быть в том, что как только подключится воркер, весь этот пул запросов потечет сразу к нему, и при отладке это крайне неудобно. Перезагружать job-сервер, чтобы обнулить счетчики, тоже не лучший выход, поскольку придется перезапустить все воркеры.</p>
<p>Мариан Маринов, технический архитектор компании <a href="http://siteground.com/">SiteGround</a>, сегодня&nbsp;<a href="http://bazaar.launchpad.net/~mm-yuhu/gearmand/mm-dev/revision/332/libgearman-server/server.c">добавил в интерфейс команду rmfunc</a>, которая позволяет удалить функцию из списка зарегистрированных.</p>
<p>Пользоваться новой функцией крайне просто:</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>$ telnet localhost 4730<br />Trying 127.0.0.1...<br />Connected to localhost.<br />Escape character is '^]'.<br />status<br />new_feature 14 0 0<br />.<br /><span style="COLOR: #008000; FONT-WEIGHT: bold">rmfunc new_feature</span><br />OK<br />status<br />.</p></blockquote></tt>
<p>Запрос на удаление функции, для которой существует «живой» воркер, завершается с ошибкой <span style="COLOR: #800000">ERR there are still connected workers</span>.</p>
<p>P. S. Сейчас весь код находится в отдельной ветке.</p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/rmfunc-gearman.html</link>
                <guid>http://onperl.ru/onperl/2010/03/rmfunc-gearman.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Не Perl</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">gearman</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">gearmand</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                <pubDate>Thu, 11 Mar 2010 16:26:25 +0300</pubDate>
            </item>
    
            <item>
                <title>Логотипчег YAPC::Europe 2010</title>
                <description><![CDATA[<p>Несмотря на то, что проектирование интерфейсов — задача, которую програмисты <a href="http://onperl.ru/onperl/2010/03/on-interfaces.html">не всегда решают успешно</a>, картинка на новом сайте <a href="http://yapceurope.org/2010">YAPC::Europe 2010</a> — великолепна.</p>
<p>Тема конференции&nbsp;— The Renaissance of Perl, проходит она в Италии, и лук в стиле&nbsp;записок Леонардо <strike>Ди Каприо</strike>, — прекрасен.</p>
<p align="center"><a href="http://yapceurope.org/2010"><img border="0" alt="YAPC::Europe 2010" src="http://img.onperl.ru/onion-leonardo.jpg" width="311" height="154" /></a></p>
<p>Да, а на ютубе (британцы говорят <em>ючуб</em>, кстати) есть <a href="http://www.youtube.com/watch?v=Nx7v815bYUw">ролик про качества перла</a>.</p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/logotipcheg.html</link>
                <guid>http://onperl.ru/onperl/2010/03/logotipcheg.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Мероприятия</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">2010</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">europe</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">fun</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">yapc::europe</category>
        
                <pubDate>Wed, 10 Mar 2010 17:57:40 +0300</pubDate>
            </item>
    
            <item>
                <title>О программистах и интерфейсах</title>
                <description><![CDATA[<p>Да здравствует перл! Этот блог работает на перле, но писали его неизвестные мне люди Я тут зашел куда-то в админской части, и увидел массу комментариев, которые, оказывается, висят неодобренными. :-O&nbsp;</p>
<p>Часть я пооткрывал, а часть (ай!) удалил. Перл + юзабилити часто так же несовместимо, как и многие другие продукты, созданный программистами.</p>
<p>И еще я забыл с собой зарядное устройство от телефона.</p>
<p>А следующий пост будет про&nbsp;<i>автобус номер один</i>, которую начали обсуждать в комментах в прошлый раз.</p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/on-interfaces.html</link>
                <guid>http://onperl.ru/onperl/2010/03/on-interfaces.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Приложения</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">movabletype</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                <pubDate>Sat, 06 Mar 2010 11:47:46 +0300</pubDate>
            </item>
    
            <item>
                <title>Голландский Perl-воркшоп 2010 года</title>
                <description><![CDATA[<p>Только что вернулся в гостиницу с седьмого <a href="http://www.perlworkshop.nl/nlpw2010/">голландского Perl-воркшопа</a>. Он проходил в хостеле <a href="http://www.stayokay.com/index.php?pageID=3207&amp;hostelID=356025&amp;language=en">Stayok</a> в городе <a href="http://www.arnhem.nl/english">Арнеме</a>.</p>
<p>Это город <a href="http://whoyougle.ru/place/distance?from=Амстердам&amp;to=Арнем">в ста километрах от Амстердама</a>, в часе езды электричкой (и еще полчаса от вокзала, то есть почти что московские расстояния от спальных районов до центра :-)</p><p>Как всегда, я сразу обращаю внимание на посещаемость, и даже под вечер она была около 90 % — из 39 зарегистрированных посетителей я насчитал 35.</p><p>Часть выступлений была на голланском языке (он напоминает смесь немецкого и английского с примесью французской картавости), поэтому все остальные, которые на английском, сразу стали вдвое интереснее :-)</p><p>Особенно хорош был <a href="http://www.perlworkshop.nl/nlpw2010/user/4915">Мартин Берендз</a>, сделавший обзор интерпретаторов и компиляторов Perl 6, существующих в марте 2010 года. Мартин упомянул неофициальное понятие <i>bus number</i>, которое равно числу ведущих разработчиков проекта.</p><p><a href="http://www.perlworkshop.nl/nlpw2010/user/5015">Леон Тиммерманс</a> подкинул еще одну лингвошутку —&nbsp;<i>unintentional feature</i> (имеется в виду <i>баг</i>).</p><p>Через какое-то время должны появиться видеозаписи (их делали местные организаторы).</p><p align="center"><img src="http://img.onperl.ru/dpw-t-shirt.jpg" width="495" height="296" title="Dutch Perl Workshop 2010 T-shirt" /></p><p>А после обеда сначала пошел мокрый снег, а потом — к вечеру — дождь; электричку пришлось ждать полчаса; и я теперь весь промокшый, но довольный :-)</p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/gollandskij-perl-vorkshop-2010-goda.html</link>
                <guid>http://onperl.ru/onperl/2010/03/gollandskij-perl-vorkshop-2010-goda.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Мероприятия</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Сообщество</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">arnhem</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">netherlands</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">workshop</category>
        
                <pubDate>Fri, 05 Mar 2010 23:25:52 +0300</pubDate>
            </item>
    
            <item>
                <title>Perl 5.10 в 2010-м — части I и II</title>
                <description><![CDATA[<h2>Часть I<br />
История и статистика</h2>

<p>Perl 5.10 увидел свет в 20 день рождения языка — 18 декабря 2007 года. Уже прошло более двух лет, и за это время успели появиться девелоперские версии 5.11.0, 5.11.1, 5.11.2, 5.11.3 и 5.11.4, и вот-вот появится версия 5.12, предназначенная для использования в реальных приложениях.</p>

<p>Perl 5.10 представил много нововведений, и сегодня интересно посмотреть, как часто они используются авторами модулей CPAN — модулей, появившихся после релиза 5.10, либо обновленных с того времени.</p>

<p>На CPAN сейчас хранится около 80 000 модулей в 20 000 дистрибутивах, список авторов содержит около 8000 имен. Как часто здесь используются фичи Perl 5.10?</p>

<p>Ответ: новые фичи встречаются в двух сотнях модулей, созданных сотней авторов.</p><p><br /></p>


<h2>Часть II<br />
Фичи Perl 5.10</h2>

<p>Кратко о том, что появилось в Perl 5.10.</p>

<p>— Встроенная функция <b>say</b>, которая работает аналогично print, но добавляет перевод строки.</p>

<p><b>— Оператор сопоставления</b> (смартматчинга) ~~ сопоставляет свои аргументы согласно здравому смыслу (и, разумеется, четким правилам, описанным в документации). Например, в этих примерах аргументы имеют разный тип, но используется один и тот же оператор.</p>

<pre>$a ~~ /\d/

$a ~~ @list

@list ~~ %hash</pre>

<p>— Составной оператор выбора под условным названием <b>switch</b>. С помощью новых ключевых слов given, when и default возможно создать условную конструкцию, аналогичную switch/case в C и других языках. Важное отличие в том, что внутри given происходит не простое сравнение, а сопоставление (или смартматчинг).</p>

<pre>given($x) {
    when(/a/) {...}
    when('b') {...}
    default   {...}
}</pre>

<p>— Модификатор <b>state</b> позволяет создавать лексические переменные, сохраняющие значение между вызовами подпрограммы. Использование state похоже на объявление автоматической переменной со словом static в C.</p>

<pre>sub counter {
    state $c = 0;
    return ++$c;
}</pre>

<p><b>— Новшества в регулярных выражениях.</b> Регулярные выражения существенно переработаны, в частности, добавлены именованные сохраняющие скобки. В этой статье про регулярные выражение почти не упоминается, поскольку они достойны отдельного рассказа.</p>

<pre>(?&lt;name&gt;)
\K
\R
%+
%-
\g&lt;name&gt;</pre>

<p>— Бинарный оператор <b>defined-or (<tt>//</tt>)</b>. Возвращает первый из аргументов, который содержит определенное (не undef) значение. Может использоваться и в варианте с присвоением.</p>

<p>Следующие два примера иллюстрируют логику, которая часто прослеживается в сообщениях о вакансиях.</p>

<pre>$city = $arg // 'Moscow';

$vacancy{city} //= 'Moscow';</pre>

<p><i><br /></i></p><p style="text-align: center;"><i>Продолжение будет.</i></p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/perl-510-v-2010-m-i-i-ii.html</link>
                <guid>http://onperl.ru/onperl/2010/03/perl-510-v-2010-m-i-i-ii.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">CPAN</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Версии Perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Язык</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10.1</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">cpan</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                <pubDate>Thu, 04 Mar 2010 23:59:02 +0300</pubDate>
            </item>
    
            <item>
                <title>10+</title>
                <description><![CDATA[<p>На основе записей в трудовой книжке.</p>
<p><strong><em>1999, Москва</em></strong></p>
<p><em>— Я программирую на Perl. Особенность&nbsp;в том,&nbsp;одно и то же действие можно записать по-разному. Это и непривычно, и немного сложно, но интересно.</em></p>
<p><em>Это сказал мой товарищ, который в то время делал сайт одного из поставщика радиодеталей. </em><a href="http://shitov.ru/sci/"><em>Я же в то время</em></a><em> писал на C++ программы для обработки данных физических экспериментов по сталкиванию частиц, делал статистический анализ данных, замаскированных шумом, и пытался применять новейшие математические&nbsp;приемы — вейвлеты — для анализа электрокардиограмм.</em></p>
<p><em>В книжных магазинах моего родного города я давно видел несколько книг с большими буквами PERL. Неосознанно я хотел узнать, что это, но тогда буквы значили не больше, чем аббревиатура VRML. Не хочу сказать, что произнесенные между делом слова товарища&nbsp;повлияли на мой выбор, но и отрицать этого не стану.</em></p>
<p><strong><em>2000—2010, Москва</em></strong></p>
<p><em>С этого года Perl стал меня кормить. За десять лет я совершенствовал себя и свои знания в журнале «</em><a href="http://www.radio.ru/"><em>Радио</em></a><em>», фонде научных исследований «</em><a href="http://artpragmatica.ru"><em>Прагматика культуры</em></a><em>», </em><a href="http://artlebedev.ru/"><em>студии Артемия Лебедева</em></a><em> (да-да, там я тоже делал некоторые вещи на перле), российском информационном агентстве «</em><a href="http://rian.ru"><em>РИА Новости</em></a><em>», компании </em><a href="http://magic.ru"><em>Q1</em></a><em> и в ООО «</em><a href="http://whoyougle.ru/"><em>Гностик</em></a><em>».</em></p>
<p><strong><em>2010, Амстердам</em></strong></p>
<p><em>В марте я подписал контракт с&nbsp;компанией </em><a href="http://booking.com/"><em>Booking.com</em></a><em>&nbsp;— еще одним лидером интернетов, который знает толк в перле и где не стыдно работать.</em></p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/10.html</link>
                <guid>http://onperl.ru/onperl/2010/03/10.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Не Perl</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">myself</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">story</category>
        
                <pubDate>Wed, 03 Mar 2010 23:07:51 +0300</pubDate>
            </item>
    
            <item>
                <title>Массив или список — ответы</title>
                <description><![CDATA[<p>Из 49 ответов на вопрос «<a href="http://onperl.ru/onperl/2010/02/post.html">@var — это массив или список</a>?», оставшихся&nbsp;после отсеивания накруток сторонников массивов, сложилась такая картина общественного мнения:</p>
<p align="center"><img src="http://img.onperl.ru/array_or_list.gif" width="470" height="413" /></p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/massiv-ili-spisok-otveti.html</link>
                <guid>http://onperl.ru/onperl/2010/03/massiv-ili-spisok-otveti.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Язык</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">array</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">list</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">terminology</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">variable</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">vote</category>
        
                <pubDate>Wed, 03 Mar 2010 00:05:14 +0300</pubDate>
            </item>
    
            <item>
                <title>Trim</title>
                <description><![CDATA[<p><a href="http://search.cpan.org/~SEWI/">Себастьян Виллинг</a> затронул в своем блоге вечную тему о том, <a href="http://blog.laufeyjarson.com/2010/03/stripping-whitespace-from-both-ends-of-a-string/">как отрезать от строки пробелы</a> с обеих сторон, сделав это в одно действие.</p>
<p>Вместо двух замен</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>$str =~ s/^\s+//;<br />$str =~ s/\s+$//;</p></blockquote></tt>
<p>Себастьян указывает на&nbsp;такой вариант:</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>$str =~ s/^\s*(.*?)\s*$/$1/;</p></blockquote></tt>
<p>Интересно почитать и комментарии, где предлагают несколько похожих вариантов с альтернативами в регулярном выражении:</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>$str =~ s/(^\s+|\s+$)//g;</p>
<p>$str =~ s/(?:^\s+|\s+$)//g;</p>
<p>$str =~ s/^\s*|\s*$//g;</p>
<p>$str =~ s/^\s+|\s+$//g;</p></blockquote></tt>
<p>P. S. В комментариях, кстати, видно, как почти одно и то же выражение разные люди записывают по-разному.</p>]]></description>
                <link>http://onperl.ru/onperl/2010/03/trim.html</link>
                <guid>http://onperl.ru/onperl/2010/03/trim.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Лингвистика</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Регулярные выражения</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">regex</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">s</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">trim</category>
        
                <pubDate>Tue, 02 Mar 2010 22:42:30 +0300</pubDate>
            </item>
    
            <item>
                <title>Что для вас @var?</title>
                <description><![CDATA[<p>Как вы называете в повседневном обиходе переменную с именем @var? Массивом или списком?</p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=dGFJZlBkZko1aHRCM0RlMmJOMm5uVEE6MA">Проголосуйте</a></p>]]></description>
                <link>http://onperl.ru/onperl/2010/02/post.html</link>
                <guid>http://onperl.ru/onperl/2010/02/post.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Язык</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">array</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">list</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">poll</category>
        
                <pubDate>Fri, 26 Feb 2010 23:34:09 +0300</pubDate>
            </item>
    
            <item>
                <title>Perl на РИТ++</title>
                <description><![CDATA[<p><a href="http://ritconf.ru/"><img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FLOAT: right; MARGIN-LEFT: 10px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" alt="РИТ++" src="http://img.onperl.ru/ritconf2010.jpg" width="200" height="120" /></a>Открыт сайт конференции <a href="http://ritconf.ru/">РИТ++</a> (Российские интернет-технологии) 2010 года. Конференция пройдет в Москве 12–14 апреля.</p>
<p>В этом году на РИТ++ отдельным потоком пройдет «вложенное» мероприятие — конференция MayPerl (да-да, в апреле).</p>
<p>Одновременно объявляется <a href="mailto:andy@shitov.ru?subject=Perl%20RIT%20Talk">прием заявок на выступления</a> на доклады. Предпочтение отдается докладам, попадающие в заявленные темы, которые хотелось бы осветить на мероприятии:</p>
<ul>
<li><img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FLOAT: right; MARGIN-LEFT: 10px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" alt="Патрик Мишо (Patrick Michaud)" src="http://img.onperl.ru/pm.jpg" width="150" height="200" />Perl в крупных организациях;</li>
<li>Perl 6;</li>
<li>Perl в сравнении с другими языками программирования.</li></ul>
<p>В конференции примет участие <a href="http://www.pmichaud.com/">Патрик Мишо</a>&nbsp;(Patrick Michaud), архитектор компилятора Perl 6 <a href="http://rakudo.org/">Rakudo</a>. Именно этой весной планируется выпустить первый релиз.</p>
<p>Регистрация, оплата и личный кабинет находятся на общем <a href="http://ritconf.ru/">сайте конференции РИТ++</a>. Присоединяйтесь (=заставьте своего работодателя вложиться в Perl)!</p>]]></description>
                <link>http://onperl.ru/onperl/2010/02/perl-na-rit.html</link>
                <guid>http://onperl.ru/onperl/2010/02/perl-na-rit.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Мероприятия</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">conference</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">event</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">moscow</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">rit</category>
        
                <pubDate>Thu, 25 Feb 2010 10:55:03 +0300</pubDate>
            </item>
    
            <item>
                <title>CPAN: модули, авторы и документация</title>
                <description><![CDATA[<p>Презентация <a href="http://friendfeed.com/sharifulin">А. Ш.</a>&nbsp;блиц-доклада на «<a href="http://2010.yapcrussia.org/perlburg">Перлбурге</a>» про спан.</p>
<div style="TEXT-ALIGN: left; WIDTH: 425px" id="__ss_3230704"><object style="MARGIN: 0px" width="425" height="355"><embed height="355" type="application/x-shockwave-flash" width="425" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=cpan-100220030045-phpapp02&amp;stripped_title=cpan-3230704" allowscriptaccess="always" allowfullscreen="true"></embed></object>
<div style="FONT-FAMILY: tahoma, arial; HEIGHT: 26px; FONT-SIZE: 11px; PADDING-TOP: 2px">View more <a style="TEXT-DECORATION: underline" href="http://www.slideshare.net/">presentations</a> from <a style="TEXT-DECORATION: underline" href="http://www.slideshare.net/sharifulin">Anatoly Sharifulin</a>.</div></div>]]></description>
                <link>http://onperl.ru/onperl/2010/02/cpan-moduli-avtori-i-dokumentacija.html</link>
                <guid>http://onperl.ru/onperl/2010/02/cpan-moduli-avtori-i-dokumentacija.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">CPAN</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Презентации</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">cpan</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perlburg</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">presentation</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">sharifulin</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">slides</category>
        
                <pubDate>Wed, 24 Feb 2010 10:55:30 +0300</pubDate>
            </item>
    
            <item>
                <title>Lingua::RU::Inflect</title>
                <description><![CDATA[<p>Одна из приятных сторон в организации конференций — возможность получать удовольствие, косвенно (например, оплатив фуршет :-) участвуя в развитии перла и его приложений.</p>
<p>Александр Сапожников после <a href="http://www.slideshare.net/sharifulin/cpan-3230704">блица&nbsp;Анатолия Шарифулина</a> <a href="http://shoorick.livejournal.com/1047576.html">выложил на CPAN</a> свой первый модуль <a href="http://search.cpan.org/perldoc?Lingua::RU::Inflect">Lingua::RU::Inflect</a>, предназначенный для склонения русских имен.</p>
<p>Тест-драйв (с массой <a href="http://event.perlrussia.org/perlburg/talk/68">бойлерплейтов</a> перед основным кодом :-):</p><tt>
<p>use v5.10;<br />use utf8;<br />use open qw(:std :utf8);<br />use strict;<br />use Lingua::RU::Inflect qw(:all);</p>
<p>say inflect_given_name(GENITIVE, 'Андрей');</p>
<p>say join ' ', inflect_given_name(GENITIVE, 'Андрей', 'Борисыч');</p></tt>
<p>Программа печатает</p><tt>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>Андрея<br />Андрея Борисыча</p></blockquote></tt>
<p>Нелитературное <em>Борисыч</em> просклонялось правильно :-) Такой вот лингвоспан.</p>]]></description>
                <link>http://onperl.ru/onperl/2010/02/linguaruinflect.html</link>
                <guid>http://onperl.ru/onperl/2010/02/linguaruinflect.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">CPAN</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Лингвистика</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">language</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">lingua</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">ru</category>
        
                <pubDate>Wed, 24 Feb 2010 10:42:40 +0300</pubDate>
            </item>
    
            <item>
                <title>5, 5.10, 5.10.1, 5.12 и 6 в Голландии</title>
                <description><![CDATA[<p>На <a href="http://www.perlworkshop.nl/nlpw2010/index.html">седьмом голландском Perl-воркшопе</a>, который пройдет в Арнхеме 5 марта, подобралась завораживающая коллекция докладов о разных версиях Perl (перечислены в порядке возрастания версии :-)</p><p></p><ul><li><i>Andrew Shitov.</i> <a href="http://www.perlworkshop.nl/nlpw2010/talk/2584">Perl 5.10 in 2010</a></li><li><i>Leon Timmermans. </i><a href="http://www.perlworkshop.nl/nlpw2010/talk/2589">What's new in Perl 5.12?</a></li><li><i>Martin Berends. </i><a href="http://www.perlworkshop.nl/nlpw2010/talk/2575">Perl 6 implementations in March 2010</a></li><li><i>Jonathan Worthington.</i> <a href="http://www.perlworkshop.nl/nlpw2010/talk/2538">Solved in Perl 6</a></li></ul><p></p>]]></description>
                <link>http://onperl.ru/onperl/2010/02/5-510-5101-512-i-6-v-gollandii.html</link>
                <guid>http://onperl.ru/onperl/2010/02/5-510-5101-512-i-6-v-gollandii.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Версии Perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Мероприятия</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10.1</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.12</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">6</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">netherlands</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">talks</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">workshop</category>
        
                <pubDate>Tue, 23 Feb 2010 13:34:07 +0300</pubDate>
            </item>
    
            <item>
                <title>Mojolicious. Веб в коробке!</title>
                <description><![CDATA[<p>Презентация Анатолия Шарифулина на «<a href="http://2010.perlrussia.org/perlburg">Перлбурге</a>».</p>
<div style="width:425px;text-align:left" id="__ss_3230744"><br /><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mojolicious-100220031309-phpapp02&amp;stripped_title=mojolicious" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mojolicious-100220031309-phpapp02&amp;stripped_title=mojolicious" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/sharifulin">Anatoly Sharifulin</a>.</div></div>]]></description>
                <link>http://onperl.ru/onperl/2010/02/mojolicious-veb-v-korobke.html</link>
                <guid>http://onperl.ru/onperl/2010/02/mojolicious-veb-v-korobke.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Презентации</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Приложения</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">event</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">mojo</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">mojolicious</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">presentation</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">sharifulin</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">slides</category>
        
                <pubDate>Sat, 20 Feb 2010 12:49:44 +0300</pubDate>
            </item>
    
            <item>
                <title>Perl 5.10 в 2010-м</title>
                <description><![CDATA[<p>Моя презентация на «<a href="http://2010.yapcrussia.org/perlburg">Перлбурге</a>».</p><p>Презентация в пяти частях, основное содержание — о том, как и зачем используют возможности 5.10 в новых модулях на CPAN и мои примеры вариантов применения, которые я показывал на onperl.ru.</p>
<div style="width:425px;text-align:left" id="__ss_3230651"><br /><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=perl510in2010-100220023748-phpapp01&amp;stripped_title=perl-510-2010" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=perl510in2010-100220023748-phpapp01&amp;stripped_title=perl-510-2010" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/andy.sh">andy.sh</a>.</div></div> ]]></description>
                <link>http://onperl.ru/onperl/2010/02/perl-510-v-2010-m.html</link>
                <guid>http://onperl.ru/onperl/2010/02/perl-510-v-2010-m.html</guid>
        
                    <category domain="http://www.sixapart.com/ns/types#category">CPAN</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Версии Perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Презентации</category>
        
                    <category domain="http://www.sixapart.com/ns/types#category">Язык</category>
        
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">5.10.1</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">ekaterinburg</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">event</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">perlburg</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">presentation</category>
        
                    <category domain="http://www.sixapart.com/ns/types#tag">slides</category>
        
                <pubDate>Sat, 20 Feb 2010 11:42:22 +0300</pubDate>
            </item>
    
        </channel>
    </rss>