Как стать автором
Поиск
Написать публикацию
Обновить
0.39

Perl *

Высокоуровневый интерпретируемый динамический язык

Сначала показывать
Порог рейтинга
Уровень сложности

Stackato: разворачиваем Perl приложение в своем облаке за 3 шага

Время на прочтение4 мин
Количество просмотров2.1K
stackato Компания ActiveState хорошо известна разработчикам. Они довольно активно продвигают свои сборки Perl (ActivePerl), Python (ActivePython), Tcl (ActiveTcl) (Раньше был еще ActivePHP, но сейчас его нет). У них есть отличный Komodo IDE и его урезанная бесплатная версия Komodo Edit. И недавно компания предприняла шаги к входу на рынок модных сейчас облачных технологии, но не со стороны создания своих облачных сервисов, а со стороны создания своей софтверной платформы. [Честно говоря, не совсем своей, но об этом далее :-)] Так появилась Stackato — «первая облачная платформа для создания private PaaS с поддержкой Python, Perl, Ruby, Node.js и Java».
Если интересно как создать свое «облачное» Perl приложение, прошу под кат.
далее

YAPC::Europe 15–17 августа в Риге

Время на прочтение2 мин
Количество просмотров569
Коллеги, товарищи и друзья!

В середине августа, с 15 по 17 августа, в Риге пройдет очередная ежегодная европейская Perl-конференция YAPC::Europe. Более сотни выступлений, которые готовят активные Perl-специалисты!

Полное расписание опубликовано и доступно на сайте: понедельник, вторник и среда.

Читать дальше →

IRC-тренинг «One day with the Debian Perl Team»

Время на прочтение1 мин
Количество просмотров654
В пятницу, 1 июля в 23:00 MSK (19:00 UTC) состоится IRC-тренинг «One day with the Debian Perl Team».
Тренинг состоится на канале #debian-meeting сети irc.debian.org и будет длиться 1 час.
Ведущий тренинга — Gregor Herrmann.
Организатор тренинга — Francesca Ciceri.
Не пропустите!
UPD: Ивэнт прошел успешно, лог IRC-тренинга находится здесь.

Config::YAML::Modern — работа с .yaml конфигурационными файлами на стероидах

Время на прочтение2 мин
Количество просмотров4K
Сегодня зарелизен свеженький модуль для работы с .yaml конфигурационными файлами. Как обычно, доступен общественности на github Config::YAML::Modern, в CPAN будет добавлен немного позднее Config::YAML::Modern.
Почему этот модуль может быть вам интересен? Он умеет несколько клевых трюков, например:
  • корректно смерджить пачку .yaml файлов из директории
  • преобразовать file.name.yaml имя файла в { File => { Name => { _content here_ } }
  • предоставляет чумовой path-resolution в dive-стиле qw/File Name inner_hash 0 my_key/

Области применения? Навскидку — конфигурация проекта при коллективной работе!
Интересно? Подробности под катом.
Читать дальше →

Собираем статистику просмотра постов в LJ/LI

Время на прочтение3 мин
Количество просмотров774
Я видел очень много скриптов на разных языках, которые рассказали бы мне о том, как узнать о своих посетителях. Но они все были очень странные и местами требовали непонятных мне вещей.
В силу того, что всю жизнь писал на Perl'е, подумал что неплохо бы разобраться как дела обстоят с решением подобной задачи.
Сама по себе задача тривиальна и решение её просто. Особенно на PHP.
Но я PHP не люблю. А перл никогда не использовал для web.

Посему за вечер был накидан вот такой код:

Читать дальше →

Стеганография на Perl

Время на прочтение4 мин
Количество просмотров5.1K
Доброго времени суток, уважаемые читатели.

Я — представитель типичной (для Хабра) современной «школоты». Интересуюсь околокомпьютерной тематикой, знаю пару языков программирования, верю, что что-то в этом смыслю. Но, пост не о том.

Просматривая хабр, я нередко натыкался на посты по теме стеганографии. Как начинающего (очень начинающего, ну совсем начинающего) программиста эта тема заинтересовала меня своей, с одной стороны неочевидностью, с другой — относительной простотой реализации. К тому-же, приближалась практика по программированию…
Пораскинув мозгами, я решил построить свой лунапарк, с блэк... написать свою стеганографирующую программу. Об этой программе, трудностях при ее написании и об их преодолении и будет мой первый хабрапост.
Читать дальше →

ActiveState приобрела Phenona

Время на прочтение1 мин
Количество просмотров991
Сегодня зарегистрированные пользователи Phenona получили письмо от создателя сервиса Даниила Кульченко (Daniil Kulchenko) с анонсом покупки сервиса компанией ActiveState.
подробности

Многопоточный сервер на Perl? Легко!

Время на прочтение3 мин
Количество просмотров15K
Иногда возникает необходимость написать какой-то простенький TCP либо UDP сервер. Например, сейчас у меня вполне успешно в production трудится собственная реализация DHCP (существующие не подходят из-за специфики). Обычно это делается просто — один цикл, слушаем сокет — и вуаля! Но не всегда «тупой» подход оправдан (нужно что-то более сложное — работа в несколько потоков, например), а использование тяжелой артиллерии слишком затратно.

Интересно? Добро пожаловать под кат.
Осторожно! Внутри Perl-код.

Выпущен Perl 5.14

Время на прочтение1 мин
Количество просмотров805
Новая версия Perl — 5.14 — была официально выпущена 14 мая после успешного периода тестирования. Это первый релиз Perl 5, выпущенный по новому графику — выпуск стабильных версий теперь будет происходить раз в год.

В этой версии присутствует целый ряд улучшений и изменений, полный список которых можно найти по адресу http://perl5.git.perl.org/perl.git/blob/HEAD:/pod/perldelta.pod. Среди основных изменений:
  • поддержка Юникода 6.0, наряду со многими усовершенствованиями функций, связанных с Юникодом;
  • улучшена поддержка IPv6;
  • значительно упрощена автоконфигурация CPAN-клиента;
  • новый флаг /r, который делает замены s///, не изменяя содержимое рабочей переменной;
  • новые флаги регулярных выражений, позволяющие указать, что выражение нужно компилировать как ASCII или Юникод;
  • новый синтаксис «package Foo { }»;
  • по сравнению с предыдущими релизами меньше используется память и процессор;
  • множество исправлений ошибок, большое число которых связано с работой Дэйва Митчелла, который исправил некоторые самые важные ошибки на грант The Perl Foundation.
Выпуск этой версии знаменует официальное прекращение поддержки Perl 5.10.

Разработка версии заняла один год с момента выхода Perl 5.12.0. 150 авторов добавили и изменили около 550 тысяч строк в почти 3 тысячах файлах. Эта версия обязана своим выпуском сообществу CPAN, а также всему сообществу Perl. Отдельная заслуга принадлежит Джессу Винсенту — релиз-менеджеру Perl 5.14.

Mojolicious v1.12

Время на прочтение2 мин
Количество просмотров2.9K
Я обнаружил что релиз замечательного перлового фреймворка Mojolicious на Хабре остался совершенно незамеченным. А тем временем, уже доступна версия v1.12, это прискорбно, т.к. теперь на перле стало писать проще чем никогда. Покажу это на реальном примере.
Читать дальше →

Perl::Critic + Subversion = внедрение единых практик кодирования в команде

Время на прочтение13 мин
Количество просмотров2.9K
Язык Perl хорошо известен той степенью свободы (a.k.a. TIMTOWTDI), которую он даёт программисту в выборе способа решения той или иной задачи. У этой медали, к сожалению, есть и оборотная сторона, которая может проявиться при командной разработке крупных проектов. Если в команде нет единых практик кодирования и каждый из разработчиков придерживается принципа TIMTOWTDI, то новичку в таком коллективе не позавидуешь.

В 2005 году активный участник Perl-сообщества Дамиан Конвей (Damian Conway) опубликовал книгу Perl Best Practices, в которой собрал и структурировал 256 рекомендаций по написанию понятного, надёжного и поддерживаемого Perl-кода. Краткую шпаргалку с выжимкой из книги можно скачать отсюда.

Годом позже, Jeffrey Thalhammer и группа товарищей выпустила Perl::Critic — гибкий и расширяемый фреймворк, позволяющий автоматизировать проверку Perl-кода на предмет его соответствия большей части рекомендаций из книги Конвея, а также многих других полезных практик.

Perl::Critic подаётся под разными соусами: во-первых, в комплекте с модулем поставляется одноимённая утилита — perlcritic, во-вторых, проверку кода можно оформить в виде тестов с помощью Test::Perl::Critic либо Test::Perl::Critic::Progressive, в-третьих, критик легко интегрируется в VIM и Emacs.

В этом рецепте я расскажу о том как проверять Perl-код на лету при коммите в Subversion-репозиторий. Bon Appétit!

Читать дальше →

Универсальный шаблонный движок за 1 минуту из подручных материалов

Время на прочтение3 мин
Количество просмотров1.8K
Шаблон

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

Не стоит забывать, что применение шаблонов далеко не ограничено WEB-ом.
Это генерация различного вида отчётов, генерация кода программ на различных языках, генерация исходных данных для обработки и многое другое.
Вообще, шаблоны хочется применить везде, где много текста и мало логики.

В раздумьях, как бы это сделать побыстрее и подешевле, не следует обманывать себя (в основном, на раннем этапе) мыслями типа «да у меня статический текст, только надо приклеить шапку», «тут нужен только счётчик», «мне надо только вывести дату» и т.д.
Сначала — шапка и счётчик, дальше будет условная вставка блоков (if), потом понадобится генерация таблиц (тут уже нужны циклы и массивы), далее потянутся строковые операции и все остальные конструкции нормального языка программирования.
Читать дальше →

Видео с Perl-воркшоп «Saint Perl — 2» (Санкт-Петербург), 18 декабря

Время на прочтение1 мин
Количество просмотров764
Всего 10 выступлений, к сожалению выложили пока только 6 (остальное в процессе оформления)

1. Russian Perl 6 book — call to envolve and test, докладчик — Шафиев Наим
Существует проект по переводу официальной книги Perl 6 на русский язык. Проект испытывает острую нехватку в переводчиках и тестерах книжки.

2. AnyEvent::HTTPBenchmark, докладчик Шафиев Наим
Создание утилиты нагрузочного тестирования, само по себе тоже являеться утилитой нагрузочного тестирования

3. Morpheus configuration engine — новый подход к конфигурации чего угодно‎, докладчик Матюхин Вячеслав

4. Perl IDEs, докладчик Шафиев Наим

5. Экономим на спичках, или Подробнее о константах, докладчик Евдокимов Денис (Green)

6. CODA — новая система компьютерной безопасности, докладчик Баклановский Максим
Про Perl мало, даже очень мало.

UPD:

7. Парадигма аспектно-ориентированного программирования и ее реализация в Perl, докладчик Александр Котов

8. Как не хранить сессии, докладчик Алексей Капранов

К сожалению докладчики: Erica Gasparini, Алексей Капранов, Вячеслав Матюхин, Денис Евдокимов (Green), так и не прислали презентации, поэтому их доклады пока будет только видео, возможно они её исправятся.

Спасибо организаторам и докладчикам конференции.

Ближайшие события

Нефункциональное модульное тестирование — «главное чтобы блестел». Часть 2

Время на прочтение2 мин
Количество просмотров2.5K
В прошлом году я написал небольшую заметку о нефункциональном тестировании — т.е. о тестах пытающихся выявить уродливый и сложный в сопровождении код. Конечно такие тесты не гарантируют идеального кода, но какой-то минимальный уровень качества обеспечат т.к. несмотря на очевидность требований этих тестов многие их игнорируют и потом приходиться разбираться в процедурах на 5 000 строк.
Заметка в ЖЖ не вызвала ожидаемой мной обратной связи (хотелось бы знать что я упустил), поэтому несмотря на сопротивление хабра решил выложить продолжение тут (спасибо людям добавившим кармы).
Со времени публикации первой заметки произошли следующие изменения:
Читать дальше →

Пишем icq-бот на perl

Время на прочтение8 мин
Количество просмотров2.9K
Если вы не знаете, но хотите узнать, как сделать программу, которая постоянно висит в памяти и что-то нужное периодически выполняет, и при этом вы пишете на языке perl — попытаюсь рассказать об этом как можно более понятно.
Я сам люблю подробные инструкции, которые подразумевают, что человек, её читающий, не обязан знать всё, что было пропущено. Пусть лучше он сам пропустит то, что знает и так. Тем более, что о чём-то он может иметь ошибочное представление.

Ну а чтобы не было скучно, совместим этот пример с ещё одной темой — icq, чтобы у нас получился icq-bot.

Читать дальше →

Perl 23 года с нами

Время на прочтение1 мин
Количество просмотров622
image
Языку Perl исполнилось 23 года. В честь этого с 1 по 24 декабря разработчики языка Perl организовали марафон, в рамках которого на страницах блога каждый день один из разработчиков делился какими-то практическими навыками, демонстрирующими те или иные возможности Perl 6.
Завершила марафон статья Ларри Уолла, в которой он подвел итоги 23-летней истории языка Perl.
Поздравляю всех разработчиков использующих этот замечательный язык.

Perl-воркшоп «Saint Perl — 2» в Санкт-Петербурге, 18 декабря

Время на прочтение2 мин
Количество просмотров773
Меньше чем через две недели, 18 декабря, состоится шестой российский Perl-воркшоп «Saint Perl — 2» в Санкт-Петербурге.

Сайт: event.perlrussia.org/saintperl2

Еще не поздно зарегистрироваться или подать заявку на доклад. Upd: появились новые доклады.

На сегодня у нас такие выступления:

  • Martin Berends. ‎Perl 6 Implementations in December 2010‎
  • Martin Berends. ‎Perl 6 Database Interfacing‎
  • Алексей Капранов (‎kappa‎). ‎Как не хранить сессии
  • Александр Котов. ‎Парадигма аспектно-ориентированного программирования и ее реализация в Perl‎
  • Вячеслав Матюхин. ‎Morpheus — новый подход к конфигурации чего угодно‎
  • Максим Баклановский. ‎CODA — новая система компьютерной безопасности
  • Наим Шафиев — Perl IDEs‎

Расписание будет составлено со дня на день, а пока можем сообщить, что ориентировочно регистрация начнется в 10:30, а открытие конференции — в 11:00.

Те, кто приезжают из других городов, могут найти подходящую гостиницу на сайте мероприятия: event.perlrussia.org/saintperl2/booking.html, там же показано расстояние от гостиницы до место проведения.

Билет на поезд — на сайте ticket.rzd.ru, на самолет — awad.ru.

Читать дальше →

NetBeans IDE — голосуем за поддержку Perl

Время на прочтение1 мин
Количество просмотров1.7K
Я уверен, что многие из нас сталкивались с NetBeans — в обзорах ли, — или же просто в поисках IDE.

Конечно, тру-перловоды используют vim, Eclipse или менее популярные штуки, — но крайне бы хотелось увидеть поддержку Perl в NetBeans.

Лично мне, в силу своих привычек, приходится использовать два редактора — Komodo Edit для Perl и NetBeans для Java/PHP — и я проникаюсь NB всё больше и больше — тормозит меньше, чем Komodo, обладает вагоном фич и маленькой тележкой приятностей, умеет «рефакторить» и тайдить код, приятное и логичное разворачивание проектов — в общем-то я не буду перечислять все его Features, — просто советую скачать да посмотреть — благо, что он кроссплатформенный.
Читать дальше →

Необычный оператор диапазона

Время на прочтение6 мин
Количество просмотров4.9K
Должен предупредить, что это ещё одна статья, не содержащая никаких откровений. Для тех супер-гиков, которые назубок знают весь perldoc, она будет абсолютно бесполезной, так что, уважаемые супер-гики, можете проходить мимо и не информировать, что всё это есть в доках. Я и так это знаю. :-) Моя статья для всех остальных, для тех, кто весь perldoc целиком либо не осилил, либо осилил, но не понял, либо понял, но не запомнил.

Я думаю, многие знают о так называемом операторе диапазона, записывающемся как .. (две точки), с помощью которого можно быстро создавать массивы из набора последовательных элементов. Например, следующий код создаёт массив из 35 чисел: 3, 4, 5, …, 37:
my @arr = 3 .. 37;
Помимо чисел можно использовать строки: в этом случае для генерации элементов массива будет выполняться так называемый магический инкремент (например, можно задать диапазон букв: 'a' .. 'z').

Однако оператор диапазона может использоваться и в скалярном контексте, принимая в качестве операндов булевские выражения и возвращая булевский результат. И вот здесь начинается самое интересное, потому что это оператор с состоянием: результат операции будет зависеть не только от значений левого и правого операндов, но ещё и от истории вызовов данного выражения!
Читать дальше →

Этот загадочный while…

Время на прочтение3 мин
Количество просмотров6.8K
«Все потребности в нем заложены, какие только бывают на свете. И все эти потребности он может удовлетворить. С помощью нашей науки, разумеется.»
А. и Б. Стругацкие


Я думаю, многим из Perl-программистов знакома следующая конструкция построчного чтения содержимого файла:
while (<FILE>) {
    # do something
}
Этот код стал настолько привычным, что многие даже не задумываются, а как же он, собственно, работает. В данной статейке я опишу одну особенность, о которой весьма полезно помнить.
Читать дальше →

Вклад авторов