Sebastian Riedel не перестает удивлять, в прошлую субботу он анонсировал Mojolicious::Lite. Это реально круто, такого я в перле еще не видел, действительно «быстрый старт»:

1.14
Рейтинг
Perl *
Высокоуровневый интерпретируемый динамический язык
Сначала показывать
Порог рейтинга
Уровень сложности
Perl и GUI. Работа с потоками
3 мин
4.3KЯ затрону весьма наболевшую тему, Perl + GUI + потоки.
Наболевшую, потому что попытка заставить работать ваше приложение с потоками может закончиться неудачей. Программа «виснет», «сегфолитится», Вы обратитесь к документации, увидете там, что библиотека не thread-safe. Потраченное время было коту под хвост?
Хинт: создать потоки до вызова Tkx::MainLoop, так как MainLoop() запускает свой цикл событий и блокирует выполнение кода. Было бы все так просто! Переписали Вы код с этим условием, а она все равно виснет…
Что же делать? Выход есть.
Наболевшую, потому что попытка заставить работать ваше приложение с потоками может закончиться неудачей. Программа «виснет», «сегфолитится», Вы обратитесь к документации, увидете там, что библиотека не thread-safe. Потраченное время было коту под хвост?
Хинт: создать потоки до вызова Tkx::MainLoop, так как MainLoop() запускает свой цикл событий и блокирует выполнение кода. Было бы все так просто! Переписали Вы код с этим условием, а она все равно виснет…
Что же делать? Выход есть.
+14
Модуль управления деревьями Nested Sets
18 мин
4.8KЗадача
Да уж, собрал ты катер, что бы кататься по водоемам и наслаждаться жизнью. Поехал на очередное озеро отдохнуть, а тебе говорят, что мол с собаками и катерами вход воспрещен, и вообще у нас озеро вечно замерзшее, вот вам коньки — наслаждайтесь. «Welcome to the Virtual Hosting lake».
+3
+14
Perl и GUI. Сравнение тулкитов
2 мин
7.4KНесмотря на большое количество модулей в CPAN, дистрибутивов Perl (Strawberry Perl, ActivePerl, MinGW Perl) возникают некоторые неопределенности, одна из них — это выбор графического тулкита для построения GUI (графического интерфейса пользователя). Об этом и пойдет речь.
Лично я остановился на ActivePerl от компании ActiveState. Также для работы применяю Komodo IDE и Perl Dev Kit.
Итак, я выбрал четыре основных модуля для работы с GUI, обеспечивающие кроссплатформенность.
Лично я остановился на ActivePerl от компании ActiveState. Также для работы применяю Komodo IDE и Perl Dev Kit.
Итак, я выбрал четыре основных модуля для работы с GUI, обеспечивающие кроссплатформенность.
+21
Вышел Parrot 1.4.0 «Mundo Cani»
2 мин
1.1K
+37
Perl — Отправляем файлы на сервер HTTP запросом
5 мин
14K На самом деле, ничего оригинального, документации достаточно, даже более чем, хотя последее вызывают очень сильную тоску. Поэтому, проще один раз практически показать, как и что делается, чем десять раз читать и наступать на грабли. Условие: Есть какие-то бинарные файлы, которые лежат локально, есть сервер, на которые мы должны эти файлы положить, на этом сервере есть скрипт (обработчик формы) который занимается делает upload файлов
Задача: Данные файлы требуется добавить через web интерфейс (обработчик формы) на сервер, как будто мы браузер и отправили данные через форму.
Задача: Данные файлы требуется добавить через web интерфейс (обработчик формы) на сервер, как будто мы браузер и отправили данные через форму.
+5
Moose(X). Продолжение
6 мин
2.6KВ продолжение топика Use Moose; Современное ООП в Perl, я хочу рассказать про некоторые интересные возможности, которые предоставляет Moose и его расширения.
Из упомянутого выше топика можно понять, что с Moose вам не придется тратить время на реализацию объектной модели. Но кроме автоматического создания аксесоров/мутаторов и конструктора, есть еще куча всяких полезностей и интересностей. А уж с помощью расширений, так вообще можно преобразить Perl до неузнаваемости (в хорошую, естественно, сторону).
Примеры кода я буду приводить из своего модуля, который я пробую переписать в стиле modern perl.
Из упомянутого выше топика можно понять, что с Moose вам не придется тратить время на реализацию объектной модели. Но кроме автоматического создания аксесоров/мутаторов и конструктора, есть еще куча всяких полезностей и интересностей. А уж с помощью расширений, так вообще можно преобразить Perl до неузнаваемости (в хорошую, естественно, сторону).
Примеры кода я буду приводить из своего модуля, который я пробую переписать в стиле modern perl.
+17
Ставим Perl на Apache, работающий под Windows.
2 мин
7.4K// публикую по просьбе пользователя mikegav
Побудило меня к написанию этой статьи отсутствие нормальной документации по установке на русском языке. Тем более, судя по интернет форумам желающих испробовать Perl не мало, да только почему-то не на одном ещё форуме не было нормального ответа, как приобщить свой Windows веб сервер к Perl-у.
Побудило меня к написанию этой статьи отсутствие нормальной документации по установке на русском языке. Тем более, судя по интернет форумам желающих испробовать Perl не мало, да только почему-то не на одном ещё форуме не было нормального ответа, как приобщить свой Windows веб сервер к Perl-у.
- Считаю, что у Вас уже установлен Apache 2.2.11. Если не установлен, то можно поставить WAMP www.wampserver.com/en
- Скачиваем ActivePerl-5.8.9.825-MSWin32-x86-288577.msi Скачивать нужно именно эту версию, а не 5.10, потому что для версии 5.10 нет mod_perl в репозитарии.
- Ставим mod_perl из репозитария, для этого выполняем из командной строки: ppm install theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
- Во время установки будет всего один вопрос “Where should mod_perl.so be placed? [D:/Apache2/modules]” Следует указать путь до папки “modules” (У меня D:\wamp\bin\apache\Apache2.2.11\modules\)
- После установки mod_perl, настраиваем вручную Apache.
- Подключаем perl, для этого после последнего LoadModule добавляем:
#Enable mod_perl
LoadFile "C:/Perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
- Мне не нравиться официальная рекомендация создавать отдельный каталог для perl скриптов и на него вешать SetHandler perl-script, вешать же SetHandler на корневой каталог Web сервера то-же не комильфо т.к. это убьет работу php интерпретатора. Я предлагаю сделать как я, ассоциировать расширение pl с perl-script. Для этого достаточно добавить строчку: AddType perl-script .pl. И разрешить исполнение cgi в корневой директории. Для этого в внутрь узла <Directory «d:/wamp/www/»> добавить Options +ExecCGI
- Ну и на любителя, если уж совсем хотите, чтобы perl скрипты вели себя как php-шные привести DirectoryIndex к такому виду: DirectoryIndex index.pl index.php index.php3 index.html index.htm
- Подключаем perl, для этого после последнего LoadModule добавляем:
-2
Пара слов про UTF-8
6 мин
46KPerl долгое время ничего не знал про кодировки. Строка была просто последовательностью байтов, каждый держал там все что хотел, и лишь изредка приходилось задумываться о том, какая же все-таки кодировка у этих данных. Времена изменились, появился UTF; поддержать его пришлось и перлистам. Как это обычно бывает, in a perl way. Я надеюсь, что эта статья сбережет немного здоровья тем, кто до сих пор пребывает в неведении относительно реализации UTF-8 в Perl.
+44
Атрибуты: взгляд внутрь
4 мин
2.3KЭто продолжение статьи "Введение в атрибуты". Если Вы не знакомы с идеей атрибутов и их синтаксисом — советую начать с нее. Ну а в этой статье рассматривается, как устроены атрибуты изнутри, как с ними обращаться, и какие могут возникнуть проблемы.
+25
Атрибуты: введение
2 мин
2.6KАтрибуты появились в Perl довольно давно. Знаменательная для старожилов версия Perl 5.005 содержала довольно бесполезную прагму
attrs
. Прагма эта позволяла навесить на функцию пару встроенных атрибутов, для чего требовалось указать внутри этой функции use attrs
с соответствующими параметрами. Правда, уже в марте 2000 года в Perl 5.6 эта прагма была объявлена deprecated. На замену ей пришел модуль attributes
, а также расширенный синтаксис для объявления переменных/функций. Стало возможным создавать для них собственные метки и вводить для этих меток обработчики. По непонятным причинам, популярность атрибуты так и не получили. А жаль.+38
Корректное использование AUTOLOAD
1 мин
4.3KХотелось бы сразу предупредить: Это статья предназначена не для зубров, а описывает вполне обычный трюк с AUTOLOAD.
В Perl существует замечательная возможность отрабатывать вызовы к неопределённым методам.
Например, в случае
Результат будет равен 'any data'.
Введение
В Perl существует замечательная возможность отрабатывать вызовы к неопределённым методам.
Например, в случае
package Something;
our $AUTOLOAD;
sub AUTOLOAD
{
return 'any data';
}
sub DESTROY
{
}
package XTest;
my $o = new Something();
print $o->dry();
Результат будет равен 'any data'.
+2
Ближайшие события
Мучаем Last.fm и СDDB.
4 мин
4.1K
Или к радости, или к сожалению, у меня есть только 3/4 от необходимого, так как программистом я не являюсь и никоим образом профессия моя к компьютерам не относима (sic!). Ну что же, глаза болят, а руки делают; желание иметь красивую статистику и профиль пересиливают отсутствие необходимых навыков :).
+19
Украинский воркшоп «Перл мова» — 2009
1 мин
498Привет.
Спешу напомнить, что 7 марта, в Киеве пройдёт перловый воркшоп.
Это такая… миниконференция, а может быть и не мини.
В программе мероприятия доклады, и мастерклассы, а также беседы в кулуарах и кабаках с такими же как вы разработчиками, использующими перл. Особенно хочется отметить присутствие специально приглашённого гостя Джонатана Вортингтона, одного из разработчиков компилятора Perl 6 Rakudo.
Так же в программе серия блиц докладов. Так что если вам хочется о чём то расказать, или у вас есть инетесная разработка, или вы хотите поставить серьёзный вопрос, но 40 минут для вас слишком много, или вы неуверены в своих силах, то это лучший выход.
Участие в мероприятии бесплатное, атмосфера креативная и добрая.
Приглашаем.
Сразу хочу добавить, что в Москве такое тоже произойдёт этой весной, но чуть пожже.
Спешу напомнить, что 7 марта, в Киеве пройдёт перловый воркшоп.
Это такая… миниконференция, а может быть и не мини.
В программе мероприятия доклады, и мастерклассы, а также беседы в кулуарах и кабаках с такими же как вы разработчиками, использующими перл. Особенно хочется отметить присутствие специально приглашённого гостя Джонатана Вортингтона, одного из разработчиков компилятора Perl 6 Rakudo.
Так же в программе серия блиц докладов. Так что если вам хочется о чём то расказать, или у вас есть инетесная разработка, или вы хотите поставить серьёзный вопрос, но 40 минут для вас слишком много, или вы неуверены в своих силах, то это лучший выход.
Участие в мероприятии бесплатное, атмосфера креативная и добрая.
Приглашаем.
Сразу хочу добавить, что в Москве такое тоже произойдёт этой весной, но чуть пожже.
+5
Вызов пользовательской функции в Perl из переменной
1 мин
2.6KДа, понадобилось мне сделать такой изврат. В PHP — это call_user_func().
Учитывая, что в Google я с довольно большим трудом нашёл реализацию (да и не там, где ожидал, а в вызовах), решил опубликовать сюда:
соответственно,
./test.pl test выведет 123
./test.pl aaa ничего не выведет
Возможно, кому-то пригодится)
Учитывая, что в Google я с довольно большим трудом нашёл реализацию (да и не там, где ожидал, а в вызовах), решил опубликовать сюда:
#!/usr/bin/perl -w
use strict;
if(exists $ARGV[0] && exists &{$ARGV[0]}){
my $func_call = \&{$ARGV[0]};
&$func_call();
}
sub test{
print "123\n";
}
соответственно,
./test.pl test выведет 123
./test.pl aaa ничего не выведет
Возможно, кому-то пригодится)
+5
-6
Почему корпорации ненавидят Perl?
2 мин
8KОрганизаторы конференции YAPC::Europe объявили, что главной темой в следующем году станет использование Perl на корпоративном уровне. А точнее — проблема, что делать с громадными объёмами некачественного кода, которые скопились за долгие годы.
Дейв Кросс, разработчик и журналист на технологические темы, всю жизнь создавал корпоративные системы на Perl, посетил вышеупомянутую конференцию, где побеседовал с представителями компаний. Он пишет в блоге O’Reilly ONLamp, что и сам мог бы заявиться на следующий год с докладом на тему «Почему корпорации ненавидят Perl». Это действительно несправедливо, считает Кросс.
Дейв Кросс не волнуется за своё собственное будущее как программиста, потому что до самой пенсии может быть обеспечен работой, поддерживая множество уже созданных систем. Однако факт в том, что многие крупные компании сейчас отказываются от Perl’а и собираются переписывать всё на Java + PHP.
В настоящее время сами разработчики веб-систем явно начинают относиться к Perl’у как к некому технологически устаревшему артефакту и в целом говорят о нём пренебрежительно. Такое настроение передаётся заказчикам, которые не разбираются в технологиях, однако теперь сразу начинают беспокоиться, едва услышав слово “perl”. Им не нужны «устаревшие» решения, они хотят красивые системы на новых технологиях.
Дейв Кросс, разработчик и журналист на технологические темы, всю жизнь создавал корпоративные системы на Perl, посетил вышеупомянутую конференцию, где побеседовал с представителями компаний. Он пишет в блоге O’Reilly ONLamp, что и сам мог бы заявиться на следующий год с докладом на тему «Почему корпорации ненавидят Perl». Это действительно несправедливо, считает Кросс.
Дейв Кросс не волнуется за своё собственное будущее как программиста, потому что до самой пенсии может быть обеспечен работой, поддерживая множество уже созданных систем. Однако факт в том, что многие крупные компании сейчас отказываются от Perl’а и собираются переписывать всё на Java + PHP.
В настоящее время сами разработчики веб-систем явно начинают относиться к Perl’у как к некому технологически устаревшему артефакту и в целом говорят о нём пренебрежительно. Такое настроение передаётся заказчикам, которые не разбираются в технологиях, однако теперь сразу начинают беспокоиться, едва услышав слово “perl”. Им не нужны «устаревшие» решения, они хотят красивые системы на новых технологиях.
+36
Тестирование программ Perl для начинающих. Test:: Simple
2 мин
3.4KTest::Simple — это базовый, очень простой модуль, который используется для написания тестов.
Модуль дает возможность использовать для тестирования всего одну функцию — ok(). Если возможностей данной функции недостаточно, рекомендуется использовать Test::More. Тесты, написанные с помощью Test::Simple полностью совместимы с Test::More.
Модуль дает возможность использовать для тестирования всего одну функцию — ok(). Если возможностей данной функции недостаточно, рекомендуется использовать Test::More. Тесты, написанные с помощью Test::Simple полностью совместимы с Test::More.
+1
Тестирование программ Perl для начинающих. Test Anything Protocol (TAP)
3 мин
5KПрежде чем, я перейду к описанию работы с модулями Test::More, Test::Harness и Test::Simple, хотелось бы уточнить, что такое TAP — упоминание которого, время от времени, появляется при обсуждении темы тестирования программ.
Текст данной темы — в основном, перевод подходящего текста из Википедии (ссылка ниже).
Пожалуй, единственный материал в данной теме, который практически не подвергался мною никакой
обработке, кроме перевода. :)
Текст данной темы — в основном, перевод подходящего текста из Википедии (ссылка ниже).
Пожалуй, единственный материал в данной теме, который практически не подвергался мною никакой
обработке, кроме перевода. :)
+1