<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5399540152597236446</id><updated>2012-01-24T10:23:27.309+02:00</updated><category term='Фото'/><category term='GPL'/><category term='NFS'/><category term='PSGI'/><category term='Tests'/><category term='YAPC'/><category term='Mojolicious'/><category term='Subversion'/><category term='Сортировка'/><category term='Перл'/><category term='perl'/><category term='Black Perl'/><category term='epic'/><category term='eclipse'/><category term='CPAN'/><category term='Cloud'/><category term='Open Source'/><title type='text'>koorchik's Perl blog || Перл блог</title><subtitle type='html'>Здесь хранятся разные советы, интересные куски кода, информация о полезных модулях ...  и так далее :)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6634936741186261974</id><published>2012-01-13T16:21:00.001+02:00</published><updated>2012-01-16T11:41:02.215+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Валидация данных в Mojolicious</title><summary type='text'>
Написал небольшой плагин для Mojolicious  - Mojolicious::Plugin::ValidateTiny. По сути - это обертка над Validate::Tiny с дополнительными удобными плюшками.

Для валидации входящий параметров мы просто используем хелпер:

$self-&gt;do_validation($validate_rules);

$validate_rules - это описание проверок в формате Validate::Tiny.

По-умолчанию, включена опция "autofields", которая позволяет </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6634936741186261974/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2012/01/mojolicious.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6634936741186261974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6634936741186261974'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2012/01/mojolicious.html' title='Валидация данных в Mojolicious'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7683608866604133796</id><published>2012-01-05T19:19:00.000+02:00</published><updated>2012-01-06T09:49:24.170+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Быстрая установка зависимостей  Perl-приложения</title><summary type='text'>

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

 Все модули я ставлю с CPAN в локальную директорию пользователя, использую для этого "local::lib".

Предварительно необходимо </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7683608866604133796/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2012/01/perl.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7683608866604133796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7683608866604133796'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2012/01/perl.html' title='Быстрая установка зависимостей  Perl-приложения'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-727470081941181241</id><published>2011-11-08T21:03:00.000+02:00</published><updated>2011-11-08T21:03:50.903+02:00</updated><title type='text'>Теперь постом можно поделиться в социальных сетях</title><summary type='text'>Я наконец-то добавил кнопки публикации информации про пост в социальных сетах. Пришлось немного порыться в интернетах, а то у меня используется нестандартный шаблон для блога и блогспот не мог к нему автоматически добавить эти кнопочки.
Теперь можно поставить +1  любому понравившемуся посту. Пользуемся, не стесняемся ;).</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/727470081941181241/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/11/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/727470081941181241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/727470081941181241'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/11/blog-post.html' title='Теперь постом можно поделиться в социальных сетях'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3334897939680863994</id><published>2011-11-08T08:30:00.000+02:00</published><updated>2011-11-08T08:30:04.227+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojlicious: Использование роутов в javascript</title><summary type='text'>
Мне нравится, как реализованы роуты в Mojolicious и особенно мне нравится то, что их можно именовать. Именую я роуты всегда в соответствии с именем контроллера и метода.
Например,
$r-&gt;get('/messages/:id')-&gt;to('messages#show')-&gt;name('messages_show');
$r-&gt;post('/messages/:id/delete')-&gt;to('messages#delete')-&gt;name('messages_delete');

И затем в контроллере:

$self-&gt;redirect_to('messages_show', id =&gt;</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3334897939680863994/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/11/mojlicious-javascript.html#comment-form' title='Комментарии: 10'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3334897939680863994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3334897939680863994'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/11/mojlicious-javascript.html' title='Mojlicious: Использование роутов в javascript'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5834598522732186802</id><published>2011-11-01T08:35:00.006+02:00</published><updated>2011-11-01T08:35:00.439+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojolicious и защита от Cross Site Request Forgery (CSRF)</title><summary type='text'>Немного теорииЯ полагаю многие знают, что такое CSRF. Но для новичков озвучу. CSRF (Cross Site Request Forgery) - это межсайтовая подделка запросов. И происходит она следующим образом.

Допустим, на вашем сайте, назовем его "mysite.com", есть ссылка, которая удаляет сообщение. Ссылка вида - "http://mysite.com/myprofile/delete?message=123".

Злоумышленник может вставить эту ссылку на свой сайт "</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5834598522732186802/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/11/mojolicious-cross-site-request-forgery.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5834598522732186802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5834598522732186802'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/11/mojolicious-cross-site-request-forgery.html' title='Mojolicious и защита от Cross Site Request Forgery (CSRF)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8763106397181540402</id><published>2011-10-26T08:55:00.001+03:00</published><updated>2011-10-27T12:26:39.567+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Black Perl'/><title type='text'>Интересности Perl</title><summary type='text'>Как-то совсем давно я ничего не писал, думаю уже пора :).  Не так давно прошла конференция BlackPerl 2011. Я думаю, что уже многие в курсе относительного этого события. 
Я на конференцию ехал без доклада, просто с желанием познакомится с Perl-комьюнити, послушать других и пофотографировать сие действо. Но вдохновленный докладчиками, решил и сам соорудить небольшое выступление. Поскольку, </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8763106397181540402/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/10/perl.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8763106397181540402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8763106397181540402'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/10/perl.html' title='Интересности Perl'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5846065333474247203</id><published>2011-08-09T20:26:00.001+03:00</published><updated>2011-08-09T20:26:39.831+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Фото'/><title type='text'>IGAL - создаем фотогалерею за 5 минут</title><summary type='text'>У меня стояла задача раздать всем фотки после праздника. Логичнее всего раздать их через интернет. Следовательно возникли следующие требования:

Фотографии должны быть доступны для скачивание только определенному кругу людей.
Фотографии должны быть доступны в полном размере( не ужатые )
Должна быть возможность предварительного просмотра фотографий.
Должна быть возможность пакетного скачивания </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5846065333474247203/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/08/igal-5.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5846065333474247203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5846065333474247203'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/08/igal-5.html' title='IGAL - создаем фотогалерею за 5 минут'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-827293837541632857</id><published>2011-07-01T22:59:00.001+03:00</published><updated>2011-07-01T22:59:52.199+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тест на понимание Perl: Вопрос 5</title><summary type='text'>ВопросЧто выведет следующий код?
$MODE = 'debug';

sub is_debug { $MODE =~ /debug/gi ? 1:0 }

print 5 if is_debug();
print 6 if is_debug();
print 7 if is_debug();
Ответ: 57


ПояснениеВызов функции is_debug будет нам по очереди возвращать то 1, то 0. Это связано с тем, что мы используем регексп с модификатором "g" в скалярном контексте. В такой ситуации при удачном совпадении Perl запоминает </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/827293837541632857/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/07/perl-5.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/827293837541632857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/827293837541632857'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/07/perl-5.html' title='Тест на понимание Perl: Вопрос 5'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7644052508670299956</id><published>2011-06-29T10:29:00.001+03:00</published><updated>2011-06-29T11:44:37.979+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Ищем Perl-программистов в Киеве и Чернигове (Украина)</title><summary type='text'>Для Perl программистов есть 2 вакансии - одна в Киеве и одна в Чернигове.

Компания Portaone.
Описание киевской вакансии -  http://www.portaone.com/company/careers/developer/
Описание черниговской вакансии -  http://www.portaone.com/company/careers/web-developer/

Работать будете в команде профессионалов, начинающих программистов в компании практически нет.

Если что-то интересует - спрашивайте, </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7644052508670299956/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/06/perl.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7644052508670299956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7644052508670299956'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/06/perl.html' title='Ищем Perl-программистов в Киеве и Чернигове (Украина)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1301850570010162396</id><published>2011-06-23T20:52:00.002+03:00</published><updated>2011-06-24T12:29:54.862+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='PSGI'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Запускаем Mojolicious/PSGI приложение: мини-тест производительности.</title><summary type='text'>Решил провести небольшое тестирование производительности Mojolicious  в разных режимах:
Mojo::Server::Daemon (Epoll/Poll)
Mojo::Server::Hypnotoad (Epoll/Poll)
Mojo::Server::PSGI + Corona
Mojo::Server::PSGI + Starman
Mojo::Server::PSGI + Starlet
Mojo::Server::PSGI + Plack::FCGI::Handler
Хотелось еще протестировать nginx+uwsgi, но не сложилось. Возможно в следующий раз.


Как проводилось </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1301850570010162396/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/06/mojoliciouspsgi.html#comment-form' title='Комментарии: 25'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1301850570010162396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1301850570010162396'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/06/mojoliciouspsgi.html' title='Запускаем Mojolicious/PSGI приложение: мини-тест производительности.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-9025039887419322273</id><published>2011-06-06T23:59:00.001+03:00</published><updated>2011-06-07T09:25:52.148+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Наконец-то исправлена обработка исключений в Perl 5.14</title><summary type='text'>Все уже знают про выход Perl 5.14, но почему везде пишут лишь про новые плюшки?! Но то что была наконец-то решена древняя проблема с обработкой исключений, никто и не вспоминает.

В Perl мы используем die для генерации исключения и блочный eval для перехвата. Конструкция, думаю, знакома всем:
eval { 
  # some code 
  die "error"; 
  # some code  
}; 

if ($@) { 
    print "Error [$@] occured!"; 
</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/9025039887419322273/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/06/perl-514.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/9025039887419322273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/9025039887419322273'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/06/perl-514.html' title='Наконец-то исправлена обработка исключений в Perl 5.14'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-970811875187238160</id><published>2011-05-27T00:01:00.001+03:00</published><updated>2011-06-23T11:56:48.996+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='PSGI'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Развертываем Perl приложение на DotCloud</title><summary type='text'>Немного про PSGIСпецификация PSGI стала очень важным(переломным) моментом в мире разработки Perl веб-приложений. По сути, произошло отделение протокола взаимодействия с веб-сервером от API фреймворка, что позволило запускать PSGI приложения в любом окружении(возможно стоит про это написать отдельный пост :) ). Все современные фреймворки поддерживают PSGI. 

Как выглядит PSGI приложение?PSGI </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/970811875187238160/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/05/perl-dotcloud.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/970811875187238160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/970811875187238160'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/05/perl-dotcloud.html' title='Развертываем Perl приложение на DotCloud'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2289924837079728409</id><published>2011-05-26T13:32:00.002+03:00</published><updated>2011-08-23T09:39:05.744+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojo::JSON для сессий в Mojolicious</title><summary type='text'>Сейчас Mojolicious использует Storable для сериализации сессий, но Себастьян решил перейти на Mojo::JSON и мне нравится эта идея :). Я приверженец формата JSON и уже упоминал его преимущества в посте "Как устроены сессии в Mojolicious?!". Проблемы могут возникнуть только у пользователей, которые хранят в сессии блесснутые(blessed) ссылки.

Тикет с обсуждением на гитхабе.</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2289924837079728409/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/05/mojojson-mojolicious.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2289924837079728409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2289924837079728409'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/05/mojojson-mojolicious.html' title='Mojo::JSON для сессий в Mojolicious'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7330088168980421149</id><published>2011-05-17T00:48:00.001+03:00</published><updated>2011-05-17T00:50:09.487+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Конвертируем HTML в PDF</title><summary type='text'>ПредысторияЕсть некое веб-приложение(на Perl), в котором нужно было добавить определенный набор отчетов. Отчеты должны иметь два представления - HTML и PDF.

Для решения этой задачи, естественно, можно было бы воспользоваться модулями типа PDF::Reuse, PDF::API2, PDF::API2::Simple, но:
1. Это лишние временные затраты (изучение API, написания дополнительного кода)
2. Это усложнение сопровождения </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7330088168980421149/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/05/html-pdf.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7330088168980421149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7330088168980421149'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/05/html-pdf.html' title='Конвертируем HTML в PDF'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5400488410004060025</id><published>2011-04-15T13:21:00.000+03:00</published><updated>2011-04-15T13:21:20.116+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojolicious 1.16: Экстренный релиз, Всем обновляться!!!</title><summary type='text'>Час назад стало известно про серьезную уязвимость в Mojolicious, которая позволяет вычитать любой файл с файловой системы.
Баг уже исправлен, к сожалению баг был опубликовал в твиттере перед тем как передан Себастьяну.
Все срочно обновляемся!!!!  Но учтите, что новый релиз не сразу попадет на все зеркала CPAN, лучше качайте прямо с официального сайта.

Если обновление слишком накладно, то </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5400488410004060025/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/04/mojolicious-116.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5400488410004060025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5400488410004060025'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/04/mojolicious-116.html' title='Mojolicious 1.16: Экстренный релиз, Всем обновляться!!!'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2004699685860992348</id><published>2011-03-28T00:36:00.001+03:00</published><updated>2011-03-30T17:33:14.638+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojoliciuos - Производительность Mojo::JSON</title><summary type='text'>Mojo::JSON VS JSON::PPРешил проверить производительность Mojo::JSON 
Интересовала, естественно, производительность в сравнении с JSON::PP. 
Колоссальная производительность JSON::XS лишает смысла сравнивать его с перловыми реализациями.

РезультатыТестирование показало, что Mojo::JSON в 1.5 раза быстрее чем JSON::PP при сериализации и в почти в 3 раза быстрее при десериализации. Очень даже неплохо</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2004699685860992348/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/03/mojoliciuos-mojojson.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2004699685860992348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2004699685860992348'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/03/mojoliciuos-mojojson.html' title='Mojoliciuos - Производительность Mojo::JSON'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6767408806675833745</id><published>2011-03-22T01:49:00.002+02:00</published><updated>2011-03-23T00:04:12.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='Сортировка'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Guttman-Rosler Transform. Часть 1: Описание преобразования.</title><summary type='text'>Уже наверное больше года хочу написать про GRT(Guttman-Rosler Transform) и наконец-то дошли руки. Вернее, наткнулся на Sort::External::Cookbook, который и взял за основу своего поста. Повествование решил разбить на две части. Первая с описанием, вторая с результатами тестирования.

Собственно сабж.
Думаю многие знакомы с преобразованием Шварца, которое позволяет повысить эфективность сортировки </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6767408806675833745/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/03/guttman-rosler-transform-1.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6767408806675833745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6767408806675833745'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/03/guttman-rosler-transform-1.html' title='Guttman-Rosler Transform. Часть 1: Описание преобразования.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-4683218322498576394</id><published>2011-02-27T20:48:00.000+02:00</published><updated>2011-02-27T20:48:45.487+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Встречайте Mojolicious::Plugin::Gravatar</title><summary type='text'>Написал небольшой плагин для  Mojolicious - Mojolicious::Plugin::Gravatar . Добавляет хелперы для работы с Gravatar.com.  Думаю многие знакомы с этим сервисом( его используют cpan и github ), но кто не знаком - обратите внимание.

Для отображения аватарки  - &lt;%= gravatar $email %&gt;  
Для получения url аватарки - &lt;%= gravatar_url $email %&gt;

Плагин уже на GitHub и на CPAN </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/4683218322498576394/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojoliciousplugingravatar.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4683218322498576394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4683218322498576394'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojoliciousplugingravatar.html' title='Встречайте Mojolicious::Plugin::Gravatar'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3780604118159906685</id><published>2011-02-21T09:10:00.002+02:00</published><updated>2011-02-21T16:48:18.194+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Mojolicious - интервью с Себастьяном Риделем( Sebastian Riedel )</title><summary type='text'>Мой перевод интервью ActiveState с Себастьяном Риделем( Sebastian Riedel ), создателем веб-фреймворка Mojolicious. Это достаточно свободный перевод, но я старался не потерять суть.

14.02.2011 Себаcтьян зарелизил Mojolicious 1.1 - Perl веб-фреймворк следующего поколения. В связи с этим и состоялось интервью.

Tara: Почему ты занялся созданием Mojolicious?

Sebastian: По большому счету это </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3780604118159906685/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojolicious-sebastian-riedel.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3780604118159906685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3780604118159906685'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojolicious-sebastian-riedel.html' title='Mojolicious - интервью с Себастьяном Риделем( Sebastian Riedel )'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6682274329551946624</id><published>2011-02-20T12:12:00.001+02:00</published><updated>2011-02-21T09:39:25.267+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Как устроены сессии в Mojolicious?!</title><summary type='text'>В этом посте я не буду рассказывать про API для работы с сессиями, это можно найти в документации к Mojolicious, а постараюсь объяснить как устроены сессии внутри.

Mojolicious использует сookies для хранения сессий. И это достаточно важный момент. Такой подход позволяет нам следовать REST идеологии. Мы можем отказаться от лишних состояний на стороне сервера, нам не нужно обеспечивать общего </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6682274329551946624/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojolicious.html#comment-form' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6682274329551946624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6682274329551946624'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/02/mojolicious.html' title='Как устроены сессии в Mojolicious?!'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6996214345509579331</id><published>2011-02-05T17:14:00.000+02:00</published><updated>2011-02-05T17:14:00.722+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Особенности конкурентной записи/чтения файлов в perl + NFS</title><summary type='text'>Рассмотрю буквально парочку малоизвестных нюансов/подводных камней.

Мало кто знает, что для вычитки файла в строку можно использовать такой код:

my $content = do {local (@ARGV, $/) = $filename; &lt;ARGV&gt; };
За объяснениями в perldoc perlvar  и поиск по ARGV.

Такой подход использовался и в File::Slurp. В данной ситуации не просходит flock, это важно учитывать если Вы этот файл еще и пишите другим </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6996214345509579331/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/02/perl-nfs.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6996214345509579331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6996214345509579331'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/02/perl-nfs.html' title='Особенности конкурентной записи/чтения файлов в perl + NFS'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6688661728018291058</id><published>2011-01-29T12:24:00.003+02:00</published><updated>2011-01-30T13:02:45.489+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='epic'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Perl IDE: Eclipse + Epic</title><summary type='text'>Perl IDEПосмотрел видео с Perl-воркшопа «Saint Perl — 2» (Санкт-Петербург). Доклад "Perl IDEs" Шафиева Наима. 

Я в свое время поигрался почти со всеми перечисленными в докладе IDE и редакторами (кроме Kephra и Emacs) и сделал выбор в пользу Eclipse + Epic.

Сразу немного критики в сторону докладчика, который заявил, что  Epic is deprecated и с 2008 без обновлений. Я пользуюсь Epic и наблюдаю там</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6688661728018291058/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/01/perl-ide-eclipse-epic.html#comment-form' title='Комментарии: 18'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6688661728018291058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6688661728018291058'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/01/perl-ide-eclipse-epic.html' title='Perl IDE: Eclipse + Epic'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1145404867554088103</id><published>2011-01-05T00:05:00.000+02:00</published><updated>2011-01-05T00:05:57.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Как Perl стал современным(Modern)?!</title><summary type='text'>Смотрим видео про то, как Perl стал современным ;) 

  Get the Flash Player to see this player.   
 
   
   var s1 = new SWFObject("http://media.dreamhost.com/mp4/player.swf","mp1","640","480","9","#FFFFFF");
   s1.addParam("allowfullscreen","true");
   s1.addParam("allowscriptaccess","always");
   s1.addParam("flashvars","&amp;file=http://presentingperl.org/yn2010/modern-perl/</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1145404867554088103/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2011/01/perl-modern.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1145404867554088103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1145404867554088103'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2011/01/perl-modern.html' title='Как Perl стал современным(Modern)?!'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-200079781823525732</id><published>2010-12-22T12:48:00.002+02:00</published><updated>2010-12-22T12:51:25.168+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Ура, товарищи. Вышел Mojolicious 1.0</title><summary type='text'>Список изменений по этой ссылке

Хотя в твиттере Себастьяна видим:
"#mojolicious 1.0 is scheduled for december 26! #perl"</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/200079781823525732/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/12/mojolicious-10.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/200079781823525732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/200079781823525732'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/12/mojolicious-10.html' title='Ура, товарищи. Вышел Mojolicious 1.0'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2483308322846555962</id><published>2010-12-01T10:02:00.003+02:00</published><updated>2011-06-06T21:47:32.260+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Чем плох eval?!</title><summary type='text'>Чем плох eval?!В perl, как всем известно, имеется 2 варианта вызова функции eval. Строковый eval для компиляции и выполнения кода на лету и блочный eval.
Нас интересует блочный eval.
Часто встречается такой вот код:


eval { 
  # some code 
  die "error"; 
  # some code  
}; 

if ($@) { 
    print "Error [$@] occured!"; 
}

Это вполне стандартный код, но есть ряд недостатков связанных и с </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2483308322846555962/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/12/eval.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2483308322846555962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2483308322846555962'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/12/eval.html' title='Чем плох eval?!'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6045142761703097866</id><published>2010-11-24T15:36:00.002+02:00</published><updated>2010-12-23T21:26:24.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mojolicious'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Пример приложения на Mojolicious ( не Lite )</title><summary type='text'>Пример приложения на Mojolicious ( не Lite )В интернете много всего уже сказано про Mojolicious::Lite, но сегодня про Mojolicious (не Lite). С фреймворком я только начал знакомится, поэтому смело критикуйте в комментариях. Для изучения фреймворака я решил написать прототип сервиса заметок. Сразу прошу не писать про XSRF,  я в курсе и это лишь прототип. Расписывать все я не буду, только ключевые </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6045142761703097866/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/11/mojolicious-lite.html#comment-form' title='Комментарии: 23'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6045142761703097866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6045142761703097866'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/11/mojolicious-lite.html' title='Пример приложения на Mojolicious ( не Lite )'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7195947592889935362</id><published>2010-10-21T18:15:00.000+03:00</published><updated>2010-10-21T18:15:57.171+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тестирование в Perl: Завершение теста при первой ошибке</title><summary type='text'>Для меня стала открытием вот эта функция - Test::Most::bail_on_fail :)

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

Если вы добавите в начало теста вызов Test::Most::bail_on_fail, то при первой же неудаче тест остановится. Теперь нас интересуют лишь последние </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7195947592889935362/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/10/perl.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7195947592889935362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7195947592889935362'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/10/perl.html' title='Тестирование в Perl: Завершение теста при первой ошибке'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5608402962607467097</id><published>2010-09-24T23:22:00.003+03:00</published><updated>2010-09-27T18:14:03.862+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Современный Perl и современный Perl-программист.</title><summary type='text'>В последние время встречается много постов на тему, что такое современный Perl. Попробую и я высказать свое мнение по этому поводу.

За последние 10 лет произошло колоссальное развитие Perl . Это развитие похоже на то, как развивается Java. Сам язык программирование Java - практически не меняется, но развивается инфраструктура. Сегодня знание Java - это знание фреймворков, а не знание синтаксиса </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5608402962607467097/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/09/perl-perl.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5608402962607467097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5608402962607467097'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/09/perl-perl.html' title='Современный Perl и современный Perl-программист.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8613856264916913306</id><published>2010-09-16T11:43:00.003+03:00</published><updated>2010-09-16T14:07:34.340+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>История одного коммита</title><summary type='text'>Год назад прочтением Олди, дождливой погодой ... и багами в коде было навеяно написание данного текста :)

Код изогнулся, как большой кусок оргстекла, поблескивая константами и переменными... он выдержал, он всегда выдерживал. Хотя такое случалось все чаще и чаще, но никто не обращал на это должного внимания, многим даже нравилось данное зрелище : "Так чудесно переливается в свете мониторов", - </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8613856264916913306/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/09/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8613856264916913306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8613856264916913306'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/09/blog-post.html' title='История одного коммита'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5026226349194001962</id><published>2010-09-08T20:57:00.001+03:00</published><updated>2010-09-25T13:23:36.266+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPL'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>GPL говорит, что я обязан открывать исходники  моего сайта?</title><summary type='text'>Лицензия GPL позволяет нам использовать и модифицировать код в своих целях. Мы имеем право модифицировать код и не делиться им ни с кем если мы не распространяем( не имеет значение платно или бесплатно) програмных продукт на основе этого кода.

Вроде как все логично и понятно. Например, если мы скачали исходник Apache и модифицировали его код, то мы можем без проблем продавать модифицированную </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5026226349194001962/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/09/gpl.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5026226349194001962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5026226349194001962'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/09/gpl.html' title='GPL говорит, что я обязан открывать исходники  моего сайта?'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7177503116166212990</id><published>2010-08-30T12:20:00.000+03:00</published><updated>2010-09-25T13:26:41.490+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>CPANPLUS и Gentoo - Автоматически создаем ebuild-ы модулей из CPAN</title><summary type='text'>Часто встречается такая ситуация, что в системе часть модулей инсталлировано через пакетный менеджер, а часть через cpan. Потом это приводит к разного рода проблемам связанные с тем, что пакетный менеджер не видит модули установленные через cpan.

1. Пакетный менеджер тянет по зависимостям уже установленный через cpan модуль.
2. Удаление через модулей через пакетный менеджер также не учитывает </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7177503116166212990/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/08/cpanplus-gentoo-ebuild-cpan.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7177503116166212990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7177503116166212990'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/08/cpanplus-gentoo-ebuild-cpan.html' title='CPANPLUS и Gentoo - Автоматически создаем ebuild-ы модулей из CPAN'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2074923377016419507</id><published>2010-08-25T23:14:00.008+03:00</published><updated>2010-08-26T16:42:14.081+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Инкремент такой инкремент : инициализируй числовую перменную как строку и потеряй 20% скорости :)</title><summary type='text'>
Заголовок конечно провокационный, но бенчмарк показывает, что вариант с числовой инициализацией переменной на 20% быстрее(тестировал на 5.12).

#/usr/bin/perl -w
use v5.10;
use strict;
use warnings;

use Benchmark ':all';

cmpthese(
    -5, {
        integer_init =&gt; sub {
            my $i = 0;
            $i++ for ( 1 .. 10000 );

        },

        string_init =&gt; sub {
            my $i = '0'</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2074923377016419507/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/08/20.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2074923377016419507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2074923377016419507'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/08/20.html' title='Инкремент такой инкремент : инициализируй числовую перменную как строку и потеряй 20% скорости :)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8881214640145891916</id><published>2010-08-23T17:34:00.001+03:00</published><updated>2010-08-26T15:44:42.535+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Улучшаем документирование кода - текстовые диаграммы.</title><summary type='text'>У меня стояла задача написать документацию к программной компоненте.
И я решил поместить описание структуры классов непосредственно прямо в POD документацию.Для этого мне потребовался инструмент, который мог бы рисовать текстовую графику.
И такой инструмент был найден - Asciio, к тому же он сам написан на Perl.Просто инсталлируем модуль с CPAN и получаем упрощенный аналог visio для текстовых </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8881214640145891916/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/08/blog-post_23.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8881214640145891916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8881214640145891916'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/08/blog-post_23.html' title='Улучшаем документирование кода - текстовые диаграммы.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ZHpB_Yalpe4/THKFQ47qE4I/AAAAAAAACRM/4-chPL01Vto/s72-c/screen1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3776598639011980286</id><published>2010-08-19T14:48:00.002+03:00</published><updated>2010-08-26T15:47:26.675+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Баян, но все же - песня про Perl.  Perl, in a Nutshell ! :)</title><summary type='text'></summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3776598639011980286/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/08/perl-perl-in-nutshell.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3776598639011980286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3776598639011980286'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/08/perl-perl-in-nutshell.html' title='Баян, но все же - песня про Perl.  Perl, in a Nutshell ! :)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2708339678585425261</id><published>2010-08-03T22:05:00.002+03:00</published><updated>2011-08-15T15:10:38.486+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Еще один способ наговнокодить.</title><summary type='text'>Пишите всегда отдельно cигил и имя переменной, а лучше вообще вставляйте после сигила перевод строки. Тогда Ваш код станет значительно нечитабельней :)

Например:
my $return = "HA-HA-HA";
print $




return;
print "We are here! )";
Спешите, в Perl 6 уже так не получиться</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2708339678585425261/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/08/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2708339678585425261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2708339678585425261'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/08/blog-post.html' title='Еще один способ наговнокодить.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2096889510918585853</id><published>2010-06-14T00:50:00.007+03:00</published><updated>2010-09-25T13:24:48.334+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Фото'/><category scheme='http://www.blogger.com/atom/ns#' term='YAPC'/><title type='text'>Фотоотчет(63 фото): YAPC-2010 День докладов</title><summary type='text'>63 фотографии с Perl Mova + YAPC-2010 проходившей в Киеве.
ПЕРЕЙТИ В ФОТОАЛЬБОМ&gt;&gt;

ЗЫ: В picasa web-albums тоже можно оставлять комментарии ;)
</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2096889510918585853/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/06/63-yapc-2010.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2096889510918585853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2096889510918585853'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/06/63-yapc-2010.html' title='Фотоотчет(63 фото): YAPC-2010 День докладов'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6508212554642470486</id><published>2010-06-05T16:48:00.003+03:00</published><updated>2010-06-10T11:20:54.451+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><title type='text'>Вы не любите котов? Так Вы просто не умеете их готовить.</title><summary type='text'>Многие сейчас переходят с Subversion на Git. Многие считают, что merge в Subversion практически невозможно использовать... и так далее.

Эта статья для тех, кто еще пользуется Subversion, но только планирует перейти на Git.
 
После прочтения статьи просто взвесьте  все за и против, которые Вы получите при переходе на Git.

Я ни в коей мере не наезжаю на Git, но для меня существует ряд проблем при</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6508212554642470486/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/06/blog-post.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6508212554642470486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6508212554642470486'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/06/blog-post.html' title='Вы не любите котов? Так Вы просто не умеете их готовить.'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5321635817618819554</id><published>2010-06-03T14:29:00.000+03:00</published><updated>2010-06-03T14:29:08.489+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><title type='text'>Удаление svn:externals для файла</title><summary type='text'>Что такое svn:externals?
Это атрибут, который можно установить любому каталогу в репозитарии. Он позволяет подгружать файлы и каталоги с другого места.
(За деталями сюда - http://svnbook.red-bean.com/en/1.0/ch07s03.html)
До версии subversion-1.6 возможно было указать только ссылки на внешние каталоги. То есть внешний файл было невозможно указать.
С версии 1.6 появилась возможность указывать в svn</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5321635817618819554/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/06/svnexternals.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5321635817618819554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5321635817618819554'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/06/svnexternals.html' title='Удаление svn:externals для файла'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-9156379334284222068</id><published>2010-05-30T20:40:00.001+03:00</published><updated>2010-08-26T15:49:07.833+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Чего я не понимаю?</title><summary type='text'>print 1 if "a\nb" =~ /^a\n$/m; #Почему не выводит 1?</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/9156379334284222068/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/05/blog-post.html#comment-form' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/9156379334284222068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/9156379334284222068'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/05/blog-post.html' title='Чего я не понимаю?'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5140711496281616405</id><published>2010-05-02T11:54:00.001+03:00</published><updated>2010-05-28T23:13:05.041+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><title type='text'>Subversion: переезд на новый домен</title><summary type='text'>Решил расширить тематику постов, теперь будут выходить посты посвященные системам контроля версий. Предвидится  целая серия постов посвященная организации работы в SVN.

Собственно сабж
У нас в компании SVN-сервер переехал на новый домен и стала задача всем разработчикам поменять имя домена для рабочей копии:
Переходим в рабочую директорию и выполняем:
svn switch --relocate old_repositary_root </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5140711496281616405/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/05/subversion.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5140711496281616405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5140711496281616405'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/05/subversion.html' title='Subversion: переезд на новый домен'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3407552493096867413</id><published>2010-04-21T20:48:00.001+03:00</published><updated>2010-08-26T15:49:52.364+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тест на понимание Perl: Вопрос 4</title><summary type='text'>Вопрос:sub a{&amp;b; print shift}sub b{print shift} a(1,2);
Ответ: 12
Пояснение:Главная особенность состоит в том, что вызов функции &amp;b происходит без круглых скобок и с использованием амперсанда. То есть вызов &amp;b b(), &amp;b() - это разные вызовы и каждый имеет свою особенность.b() - классический вызов функции &amp;b() - аналогично первому варианту, но игнорируются прототипы&amp;b   - если функция вызывается </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3407552493096867413/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/04/perl-4.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3407552493096867413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3407552493096867413'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/04/perl-4.html' title='Тест на понимание Perl: Вопрос 4'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5719198953186684660</id><published>2010-04-19T08:32:00.000+03:00</published><updated>2010-08-26T15:50:53.960+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тест на понимание Perl: Вопрос 3</title><summary type='text'>Вопрос:
0 ? $a = 1: $b = 2;
1 ? $a = 1: $b = 2;
print "$a $b"

Ответ: 2 2 

Пояснение: 
Тут есть два важных момента:

Приоритет тернарного оператора выше чем у "=" и поэтому конструкция работает так (0 ? $a = 1: $b) = 2;
После вычесления тернарного оператора возвращается переменная, а не ее значение. И ее можно изменить.

Вот еще наглядный пример: 
конструкцию вида
if ( $x ) { 
    $a-&gt;{key} = 1;</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5719198953186684660/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/04/perl-3.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5719198953186684660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5719198953186684660'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/04/perl-3.html' title='Тест на понимание Perl: Вопрос 3'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3496310413515248570</id><published>2010-04-17T18:52:00.000+03:00</published><updated>2010-09-25T13:26:41.490+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Экономия памяти: YAML::Tiny</title><summary type='text'>Небольшое вступление для тех, кто  еще не использует YAML (позволю себе процитировать википедию )YAML — человекочитаемый формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данныхмногих языков программирования. Я использую YAML для разного рода конфигурационной информации.Почему я использую YAML? :YAML краток и понятен</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3496310413515248570/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/04/yamltiny.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3496310413515248570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3496310413515248570'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/04/yamltiny.html' title='Экономия памяти: YAML::Tiny'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5353564007122408037</id><published>2010-04-09T09:39:00.005+03:00</published><updated>2010-08-26T15:50:53.961+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Несостоятельность ithreads в Perl (сам не ожидал)</title><summary type='text'>Предыстория
Никогда до этого не использовал треды(threads)  в Perl - как-то не доверял я им и использовал forkи... и как оказалось не зря!
И настал тот день, когда от тредов никуда не убежишь(на самом деле убежишь, но про это дальше) - нужно было включить многопоточность для модуля Fuse.pm(просто передается дополнительный параметр threaded =&gt; 1), и тогда на каждый вызов файлофай системы будет </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5353564007122408037/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/04/ithreads-perl.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5353564007122408037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5353564007122408037'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/04/ithreads-perl.html' title='Несостоятельность ithreads в Perl (сам не ожидал)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8207626534357696021</id><published>2010-04-01T09:15:00.001+03:00</published><updated>2010-08-26T15:50:53.961+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Мог бы быть вопрос номер 3 на понимание Perl ...</title><summary type='text'>... если бы я сам понимал что тут происходит
perl -e 'my $i=5; print(++$i + ++$i)' #  почему тут 14, а не 13 ???


perl -e 'my $i=5; print(sub{++$i}-&gt;() + sub{++$i}-&gt;())' #   тут все нормально - выдает 13


perl -e 'my $i=5; print( $i++ + $i++)' # и так нормально - выдает 11



</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8207626534357696021/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/04/3-perl.html#comment-form' title='Комментарии: 14'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8207626534357696021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8207626534357696021'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/04/3-perl.html' title='Мог бы быть вопрос номер 3 на понимание Perl ...'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1401890196631815171</id><published>2010-03-31T14:32:00.001+03:00</published><updated>2010-08-26T15:50:53.961+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тест на понимание Perl: Вопрос 2</title><summary type='text'>@a = (2,3,4,5); my $a = {a=&gt;"q", b=&gt;@a, c=&gt;2}; print $a-&gt;{c}; Ответ: undef
Пояснение: хеш представляет собой список с пар(ключ/значение). значение(как и ключ) всегда представляет собой скаляр.  Оператор =&gt; - по своей сути, это синоним оператору ",", только он еще берет левый аргумент в двойные кавычки. 


Эта запись {a=&gt;"q", b=&gt;@a, c=&gt;2} на самом деле
равна  {"a", "q", "b" , @a, "c", 2}, 
либо  {</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1401890196631815171/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/perl-2.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1401890196631815171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1401890196631815171'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/perl-2.html' title='Тест на понимание Perl: Вопрос 2'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8768169712059571319</id><published>2010-03-29T14:32:00.000+03:00</published><updated>2010-08-26T15:50:53.961+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Тест на понимание Perl: идея и вопрос 1</title><summary type='text'>Идея
Решил написать серию постов с вопросами на понимание  Perl. То есть каждый пост - отдельный вопрос.  Каждый такой пост будет содержать: вопрос, ответ, объяснение ответа.


Вопросы не будут содержать каких-либо редко используемых функций. Главное здесь проверить не знание функций, а понимание поведения Perl-кода.  Возможно многим они покажутся очевидными, но это говорит о том, что вы </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8768169712059571319/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/perl-1.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8768169712059571319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8768169712059571319'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/perl-1.html' title='Тест на понимание Perl: идея и вопрос 1'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2833956682843000911</id><published>2010-03-27T12:45:00.000+02:00</published><updated>2010-08-26T15:50:53.962+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Комментарии на русском языке(utf-8) в perl коде - ЗЛО || ДОБРО ?</title><summary type='text'>Какие могут быть проблемы? Я пока вижу следующие:
Проблема 1. Необходимо всем перенастроить редакторы кода.  У нас в компании нет ограничения на использование редакторов кода - используются Vim, Eclipse, Geany, Far... С Far есть явная проблема, которая заключается в необходимости постоянного переключении редактора в режим юникода для просмотра комментария. С vim тоже есть проблема - при </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2833956682843000911/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/utf-8-perl.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2833956682843000911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2833956682843000911'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/utf-8-perl.html' title='Комментарии на русском языке(utf-8) в perl коде - ЗЛО || ДОБРО ?'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-4787642700717103037</id><published>2010-03-21T09:27:00.000+02:00</published><updated>2010-08-26T15:50:53.962+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Экономия памяти: прием по ссылке</title><summary type='text'>Не для кого не секрет, что Perl любит кушать память и при написании кода нужно обращать внимание на всякие мелочи, если вы работаете с большими объемами данных. Проблема заключается в том, что когда Perl съедает память, он ее не возвращает системе, а оставляет себе для повторного использования. Для долгоживущих процессов это иногда создает проблемы.

Допустим у нас есть огромный блок данных - $</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/4787642700717103037/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/blog-post_21.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4787642700717103037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4787642700717103037'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/blog-post_21.html' title='Экономия памяти: прием по ссылке'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3135279942454803513</id><published>2010-03-20T11:09:00.000+02:00</published><updated>2010-08-26T15:51:59.411+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Разрешено анонимное комментирование :)</title><summary type='text'>Теперь можно оставлять комментарии анонимно, необходимо только пройти проверку каптчей.</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3135279942454803513/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3135279942454803513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3135279942454803513'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/blog-post.html' title='Разрешено анонимное комментирование :)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7559245302879388385</id><published>2010-03-18T14:44:00.000+02:00</published><updated>2010-08-26T15:50:53.962+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Никогда не пишите так m/$var/ :)</title><summary type='text'>Не многие в курсе, но такая запись m/$var/  чревата сложно находимыми багами. Сразу оговорюсь, что это актуально если $var может быть пустой.


Пример 1
my $a = "text"; 
my $b = "text2"; 
print 1 if $b =~ /text2/; 
print 2 if $a =~ //;
# В результате будет напечатано 1;



Пример 2my $a = "text"; my $b = "text2"; print 1 if $b =~ /text3/; print 2 if $a =~ //;# В результате будет напечатано 2;

</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7559245302879388385/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/mvar.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7559245302879388385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7559245302879388385'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/mvar.html' title='Никогда не пишите так m/$var/ :)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8943350127940462306</id><published>2010-03-16T10:18:00.000+02:00</published><updated>2010-09-25T13:26:41.491+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Обновил Debug::LTrace до 0.02</title><summary type='text'>* Обновилась документации и тесты.
* Теперь модуль без проблем инсталлируется под 5.8.x

ЗЫ: Как приятно смотреть на все эти зелененькие "PASS" в CPAN Testers Report :))</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8943350127940462306/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/debugltrace-002.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8943350127940462306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8943350127940462306'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/debugltrace-002.html' title='Обновил Debug::LTrace до 0.02'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2313656215565999384</id><published>2010-03-14T16:03:00.003+02:00</published><updated>2010-08-26T15:50:53.963+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Не только одними feature5.10... :)</title><summary type='text'>

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

print qr{\Q\_\E} #выведет:(?-xism:\\_)
print "\Q\_\E"   #выведет:_

в 5.8.x
print qr{\Q\_\E} #выведет: 
(?-xism:_)

print "\Q\_\E"   #выведет: 
_

Занятно, однако ...</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2313656215565999384/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/feature510.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2313656215565999384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2313656215565999384'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/feature510.html' title='Не только одними feature5.10... :)'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-465098763028515365</id><published>2010-03-11T14:16:00.000+02:00</published><updated>2010-08-26T15:50:53.963+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>koorchik's Perl blog переехал с koorchik.name на koorchik.blogspot.com</title><summary type='text'>Блог изначально создавался как просто страница с советами по Perl ("Perl Tips"), но в результате вырос и потребовался новый функционал, появились желающие прокомментировать посты...

Теперь koorchik's Perl blog можно найти по адресу http://koorchik.blogspot.com/ и все желающие могут оставлять комментарии. Если у кого-то возникало желание прокомментировать старый пост, то теперь можно это сделать,</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/465098763028515365/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/koorchiks-perl-blog-koorchikname.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/465098763028515365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/465098763028515365'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/koorchiks-perl-blog-koorchikname.html' title='koorchik&apos;s Perl blog переехал с koorchik.name на koorchik.blogspot.com'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5079616660088312675</id><published>2010-03-11T11:33:00.001+02:00</published><updated>2010-08-26T15:50:53.963+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Как добавить свою аватарку на CPAN</title><summary type='text'>Залил свой модуль Debug::LTrace на CPAN и смотрю у меня дефолтовая аватарка.
Начал перерывать все пункты в меню моего аккаунта на PAUSE сервере в поисках формы аплоада аватарок и все тщетно. Через 15 минут меня совсем перестал удивлять тот факт, что так мало автором на CPAN имеют свои аватарки :)).

Так вот. Решил я посмотреть в html коде откуда подгружается аватарка на CPAN и... возможно это для</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5079616660088312675/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/cpan.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5079616660088312675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5079616660088312675'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/cpan.html' title='Как добавить свою аватарку на CPAN'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3676792242278324080</id><published>2010-03-10T09:13:00.000+02:00</published><updated>2010-09-25T13:26:41.491+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Debug::LTrace - мой дебют на CPAN</title><summary type='text'>Debug::LTrace отслеживает вызов и возврат функций. Использование Debug::LTrace не требует никаких дополнительных изменений в коде. Информации о вызовах выводится через стандартный warn.

На CPAN есть и другие модули такие, как Devel::TraceCalls и Debug::Trace, но Devel::TraceCalls неудобный в использовании(хотя очень мощный), Debug::Trace - удобный и простой, но не хватает функционала.

Debug::</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3676792242278324080/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/03/debugltrace-cpan.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3676792242278324080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3676792242278324080'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/03/debugltrace-cpan.html' title='Debug::LTrace - мой дебют на CPAN'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3016412942785670638</id><published>2010-02-07T09:11:00.000+02:00</published><updated>2010-08-26T15:50:53.964+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Таблицы псевдографикой</title><summary type='text'>
Задача отправлять табличную информацию на почту.  И решение в общем то очевидное - использовать псевдографику(хотя возможно кого-то устроит html), либо просто выравнивать текст при помощи printf, но эффект уже не тот :).  Полчаса моего поиска в CPAN увенчались успехом и был найдет модуль Text::SimpleTable, который был предельно простым и полностью решал поставленную задачу. 
Пример:use Text::</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3016412942785670638/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/02/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3016412942785670638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3016412942785670638'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/02/blog-post.html' title='Таблицы псевдографикой'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-7222804116350173026</id><published>2010-02-04T09:23:00.000+02:00</published><updated>2010-08-26T15:50:53.964+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>GUI в Perl: Frozen Bubble</title><summary type='text'>Есть игрушка, которая мне очень нравится - FrozenBubble  и я давно в нее играюсь.  И я был приятно удивлен когда узнал, что она написана на Perl и SDL :)
Красочная игра, 100 уровней для одного игрока, есть поддержка сетевой игры, классный саундтрек.  Показательный пример создания качественной игры на Perl.

</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/7222804116350173026/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/02/gui-perl-frozen-bubble.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7222804116350173026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/7222804116350173026'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/02/gui-perl-frozen-bubble.html' title='GUI в Perl: Frozen Bubble'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ZHpB_Yalpe4/S5iaocUMolI/AAAAAAAAB3E/I7bSvWERnT8/s72-c/frozenbubble2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2522783402306796811</id><published>2010-01-29T09:10:00.001+02:00</published><updated>2010-09-25T13:25:32.227+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Инструменты разработчика: Devel::TraceUse</title><summary type='text'>
Модуль позволяет посмотреть(в виде дерева) какие модули подключает ваша программа. Это бывает может быть полезным в разных случаях. Например,  когда  программа сразу после компиляции начинает занимать слишком много памяти...  или бывает непонятно какой из бекендов подключает некий модуль(например JSON)... или просто необходимо собрать список зависимостей  ...  В общем - вариантов может быть </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2522783402306796811/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/01/develtraceuse.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2522783402306796811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2522783402306796811'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/01/develtraceuse.html' title='Инструменты разработчика: Devel::TraceUse'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3516341859981111991</id><published>2010-01-27T09:40:00.000+02:00</published><updated>2010-08-26T15:50:53.964+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Движки сериализации: кто быстрее?</title><summary type='text'>Сегодня наткнулся на модуль Benchmark::Serialize, который тестирует разные движки сериализации(
тестируется сериализация, десериализация и размер сериализированных данных).
У меня в системы оказались следующие движки: Data::Dumper 2.124, JSON::PP 2.27000 JSON::XS 2.27, Storable 2.20, XML::Simple 2.18. 
И я был очень и очень удивлен результатом. Первое место по всем показателям достается модулю </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3516341859981111991/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post_26.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3516341859981111991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3516341859981111991'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post_26.html' title='Движки сериализации: кто быстрее?'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-8636007455944320122</id><published>2010-01-26T09:08:00.000+02:00</published><updated>2010-08-26T15:50:53.965+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Генерация произносимых паролей</title><summary type='text'>Возникла задача добавления большого списка новых пользователей в систему, притом пароль может устанавливать и менять только администратор. Поскольку лично у каждого пользователя просить ввести пароль не представлялось возможным, то необходимо было сразу сгенерировать удобные для пользователей пароли.

Удобные пароли - это те, которые содержать только латиницу в нижнем регистре и складываются в </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/8636007455944320122/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8636007455944320122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/8636007455944320122'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post.html' title='Генерация произносимых паролей'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-6279148703285517874</id><published>2010-01-25T09:42:00.000+02:00</published><updated>2010-08-26T15:50:53.965+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Рекурсивное копирование сложных структур данных</title><summary type='text'>
Модуль StorableКлассический вариант - это использования функции dclone со стандартного модуля Storable, который предзначен для сериализации данных, и невероятно быстрый. Реализован на 'C' с низкоуровневыми оптимизациями, работающими с внутренней реализацией Perl( инкапсуляция отдданна в жертву в обмен на скорость)Функция  dclone на самом деле сначала просто сериализирует в память данные, а потом</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/6279148703285517874/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post_24.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6279148703285517874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/6279148703285517874'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2010/01/blog-post_24.html' title='Рекурсивное копирование сложных структур данных'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3210552083190446604</id><published>2009-12-28T09:45:00.000+02:00</published><updated>2010-08-26T15:50:53.965+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Проблемы логирования отладочной информации</title><summary type='text'>
Как известно вывод отладочной информации значительно замедляет выполнение программы, особенно если Вам приходиться дампить сложные структуры данных. После завершения этапа тестирования отключают вывод лишней информации, но все же вызовы функций остаются, и они съедают системные ресурсы. Особенно необходимо избегать такого - logger("Message1", Message2", Dumper($mega_structure_ref); Дампер будет </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3210552083190446604/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/12/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3210552083190446604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3210552083190446604'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/12/blog-post.html' title='Проблемы логирования отладочной информации'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-4179227182094234045</id><published>2009-11-21T09:05:00.000+02:00</published><updated>2010-09-25T13:26:41.492+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPAN'/><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Удобства perl 5.10 или Modern::Perl</title><summary type='text'>Как известно в perl 5.10 появилось много всяких вкусностей:
все новые операторы доступны по-умолчанию
Пример 1:
$a = 0 unless defined $a; #раньше 
$a //= 0; # perl 5.10
Пример 2:
Допустим у нас есть массив 
@types = qw/type1 type2 type3/;
и необходимо проверить наличие в нем некого элемента
if (grep {$a eq $_} @types ) {}  # раньше
if ($a ~~ @types ) {}  #  perl 5.10  (самый быстрый способ для </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/4179227182094234045/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/11/perl-510-modernperl.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4179227182094234045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/4179227182094234045'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/11/perl-510-modernperl.html' title='Удобства perl 5.10 или Modern::Perl'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-2817117613004309868</id><published>2009-11-11T09:58:00.000+02:00</published><updated>2010-08-26T15:50:53.965+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Правильное использование временной переменной в цикле foreach</title><summary type='text'>
Классический перловый foreach цикл:
Вариант 1:foreach my $element ( @list ) {    #some code    }
Вариант 2:my $element;foreach $element ( @list ) {    #some code    }
Сравнение:
Большинство, не задумываясь, используют первый вариант... и это правильно :). Но есть "программисты-оптимизаторы", которые используют второй вариант, аргументируя это тем, что он "быстрее" (забивая на то, что они </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/2817117613004309868/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/11/foreach.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2817117613004309868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/2817117613004309868'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/11/foreach.html' title='Правильное использование временной переменной в цикле foreach'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-3016061638968585680</id><published>2009-10-20T10:02:00.001+03:00</published><updated>2011-01-13T23:25:21.375+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Подсветка ошибок при просмотре логов</title><summary type='text'>Мы часто юзаюем команду tail для логов( например  tail -f file.log ) и часто не хватает подсветки строчек, которые содержат строку "error".

Пример 1.
Следующий код подсветит целую строку красным, если она содержит слово "error":
tail -f file.log | perl -pe 's/^.*error.+$/\e[1;32;41m$&amp;\e[0m/gim'
#ключ -p обрамляет программу в while (&lt;&gt;) { ... print  $_}

Пример 2.
Тут строки со словами "error", "</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/3016061638968585680/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/10/blog-post.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3016061638968585680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/3016061638968585680'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/10/blog-post.html' title='Подсветка ошибок при просмотре логов'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1290215684715555308</id><published>2009-08-10T23:40:00.000+03:00</published><updated>2010-08-26T15:50:53.966+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Term::ANSIColor (стандартный модуль) - раскрась терминал</title><summary type='text'>Очень простой стандартный модуль, который великолепно справляется со своей задачей, а именно подсветить текст необходимым Вам цветом.
За деталями лезем в  perldoc Term::ANSIColor
Пример 1.
use Term::ANSIColor;print color 'bold blue';print "This text is bold blue.\n";print color 'reset';print "This text is normal.\n";print colored ("Yellow on magenta.\n", 'yellow on_magenta');print "This text is </summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1290215684715555308/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/08/termansicolor.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1290215684715555308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1290215684715555308'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/08/termansicolor.html' title='Term::ANSIColor (стандартный модуль) - раскрась терминал'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-5565758140129374734</id><published>2009-07-25T23:38:00.000+03:00</published><updated>2010-08-26T15:50:53.966+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Сортировка Шварца</title><summary type='text'>Представим, что у нас есть масив @ar , нужно получить масив @ar_new отортировав масив @ar следующим образом :
@ar_new = sort { slow_sub ($a) &lt;=&gt; slow_sub($b) } @ar 
Все бы хорошо но для сортировки n елементов блок сравнения будет вызван примерно n log n раз, а каждое сравнение это двойной вызов slow_sub. И в данной ситуации сортировка Шварца все решает.

@ar_new = map  { $_-&gt;[0] }</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/5565758140129374734/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post_25.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5565758140129374734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/5565758140129374734'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post_25.html' title='Сортировка Шварца'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-472065507675689245</id><published>2009-07-15T23:10:00.000+03:00</published><updated>2010-08-26T15:51:59.411+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>При присвоении перл возвращает переменную (вернее - lvalue), а не ее значение</title><summary type='text'>Что это дает?
Пример 1.
Можно сделать замену в скопированной переменной(сохранив при этом оригинальную)
(my $new_var = $original_var)  =~ s/pattern/replacement/;

Пример 2.
Запись вида :
$a += 2;$a *= 3;
можно заменить на :
($a += 2) *= 3;
Пример 3.
Запись вида :

if ($x) {    $a-&gt;{key} = 1;}else{    $b-&gt;{key} = 1;}

Можно заменить на : ($x ? $a : $b)-&gt;{key} = 1

ЗЫ: с это особенностью нужно быть</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/472065507675689245/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/07/lvalue.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/472065507675689245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/472065507675689245'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/07/lvalue.html' title='При присвоении перл возвращает переменную (вернее - lvalue), а не ее значение'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1681370659852161085</id><published>2009-07-10T23:02:00.000+03:00</published><updated>2010-08-26T15:50:53.966+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Вы знаете про стандартную перловую утилиту find2perl ?!</title><summary type='text'>find2perl транслирует параметры команды  "find" в перловый код,  который использует стандартный модуль  File::Find
смотреть perldoc perlutils 

Пример:
find2perl . -user root -perm 4000 -print
выдаст следующий платформонезависимый код (функция wanted нас интересует больше всего )

#здесь было начало. выполнив пример можно увидеть весь код  ;)
sub wanted {    my ($dev,$ino,$mode,$nlink,$uid,$gid);</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1681370659852161085/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/07/find2perl.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1681370659852161085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1681370659852161085'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/07/find2perl.html' title='Вы знаете про стандартную перловую утилиту find2perl ?!'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1569497902253402467</id><published>2009-07-05T23:01:00.000+03:00</published><updated>2010-08-26T15:50:53.967+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Просмотр исходного текста модуля установленого в систему</title><summary type='text'>perldoc -m Module

Пример:
perldoc -m File::Path

Модуль открылся и нет подсветки синтаксиса - просто нажмите "v". Модуль переоткроется в вашем редакторе(переменная EDITOR, у меня, например, vim) со всеми выплывающими прелестями. (этот фокус работает, если вы используете less как стандартный пейджер)</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1569497902253402467/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post_05.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1569497902253402467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1569497902253402467'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post_05.html' title='Просмотр исходного текста модуля установленого в систему'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5399540152597236446.post-1015069474823510983</id><published>2009-07-05T22:59:00.000+03:00</published><updated>2010-08-26T15:50:53.967+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Перл'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Как узнать где находится модуль установленный в систему ?</title><summary type='text'>perldoc -l Module

Пример 1:
perldoc -l File::Path
/usr/lib64/perl5/site_perl/5.8.8/File/Path.pm

Пример 2:
Открыть системный модуль в vim можно следующим образом: vim `perldoc -l File::Path`</summary><link rel='replies' type='application/atom+xml' href='http://koorchik.blogspot.com/feeds/1015069474823510983/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1015069474823510983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5399540152597236446/posts/default/1015069474823510983'/><link rel='alternate' type='text/html' href='http://koorchik.blogspot.com/2009/07/blog-post.html' title='Как узнать где находится модуль установленный в систему ?'/><author><name>koorchik</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_ZHpB_Yalpe4/S2H6f6HAUZI/AAAAAAAABxM/TZ6q-1FR7Rg/S220/passport_cropped.jpg'/></author><thr:total>0</thr:total></entry></feed>
