Как стать автором
Обновить
2.25

Perl *

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

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

Perl и GUI. Часть 1

Время на прочтение3 мин
Количество просмотров6.8K
В предыдущем посте мы разобрались с библиотеками для написания GUI на Perl. Поэтому можно приступить к работе.

Сегодня мы попробуем создать простое приложение (окно и главное меню).
Я буду использовать Tkx и ActivePerl.

Для начала, необходимо понять основные принципы.

Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии8

Perl и GUI. Сравнение тулкитов

Время на прочтение2 мин
Количество просмотров7.3K
Несмотря на большое количество модулей в CPAN, дистрибутивов Perl (Strawberry Perl, ActivePerl, MinGW Perl) возникают некоторые неопределенности, одна из них — это выбор графического тулкита для построения GUI (графического интерфейса пользователя). Об этом и пойдет речь.

Лично я остановился на ActivePerl от компании ActiveState. Также для работы применяю Komodo IDE и Perl Dev Kit.

Итак, я выбрал четыре основных модуля для работы с GUI, обеспечивающие кроссплатформенность.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии46

Вышел Parrot 1.4.0 «Mundo Cani»

Время на прочтение2 мин
Количество просмотров1.1K
Parrot LogoЗа все время чтения хабра видел лишь несколько упоминаний Parrot VM. Тем временем, проект активно развивается, и сегодня вышел релиз 1.4.0. Parrot — виртуальная машина, предназначенная для эффективной компиляции и исполнения байткода для динамических языков программирования. На данный момент существуют реализации нескольких языков для Parrot: Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, а также транслятор байткода .NET.

Читать дальше →
Всего голосов 47: ↑42 и ↓5+37
Комментарии29

Perl — Отправляем файлы на сервер HTTP запросом

Время на прочтение5 мин
Количество просмотров13K
На самом деле, ничего оригинального, документации достаточно, даже более чем, хотя последее вызывают очень сильную тоску. Поэтому, проще один раз практически показать, как и что делается, чем десять раз читать и наступать на грабли. Условие: Есть какие-то бинарные файлы, которые лежат локально, есть сервер, на которые мы должны эти файлы положить, на этом сервере есть скрипт (обработчик формы) который занимается делает upload файлов
Задача: Данные файлы требуется добавить через web интерфейс (обработчик формы) на сервер, как будто мы браузер и отправили данные через форму.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии6

Истории

Moose(X). Продолжение

Время на прочтение6 мин
Количество просмотров2.6K
В продолжение топика Use Moose; Современное ООП в Perl, я хочу рассказать про некоторые интересные возможности, которые предоставляет Moose и его расширения.
Из упомянутого выше топика можно понять, что с Moose вам не придется тратить время на реализацию объектной модели. Но кроме автоматического создания аксесоров/мутаторов и конструктора, есть еще куча всяких полезностей и интересностей. А уж с помощью расширений, так вообще можно преобразить Perl до неузнаваемости (в хорошую, естественно, сторону).

Примеры кода я буду приводить из своего модуля, который я пробую переписать в стиле modern perl.
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии37

Ставим Perl на Apache, работающий под Windows.

Время на прочтение2 мин
Количество просмотров7.3K
// публикую по просьбе пользователя mikegav

Побудило меня к написанию этой статьи отсутствие нормальной документации по установке на русском языке. Тем более, судя по интернет форумам желающих испробовать Perl не мало, да только почему-то не на одном ещё форуме не было нормального ответа, как приобщить свой Windows веб сервер к Perl-у.

  1. Считаю, что у Вас уже установлен Apache 2.2.11. Если не установлен, то можно поставить WAMP www.wampserver.com/en
  2. Скачиваем ActivePerl-5.8.9.825-MSWin32-x86-288577.msi Скачивать нужно именно эту версию, а не 5.10, потому что для версии 5.10 нет mod_perl в репозитарии.
  3. Ставим mod_perl из репозитария, для этого выполняем из командной строки: ppm install theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
  4. Во время установки будет всего один вопрос “Where should mod_perl.so be placed? [D:/Apache2/modules]” Следует указать путь до папки “modules” (У меня D:\wamp\bin\apache\Apache2.2.11\modules\)
  5. После установки mod_perl, настраиваем вручную Apache.
    1. Подключаем perl, для этого после последнего LoadModule добавляем:
      #Enable mod_perl
      LoadFile "C:/Perl/bin/perl58.dll"
      LoadModule perl_module modules/mod_perl.so
      PerlResponseHandler ModPerl::Registry
      PerlOptions +ParseHeaders

    2. Мне не нравиться официальная рекомендация создавать отдельный каталог для perl скриптов и на него вешать SetHandler perl-script, вешать же SetHandler на корневой каталог Web сервера то-же не комильфо т.к. это убьет работу php интерпретатора. Я предлагаю сделать как я, ассоциировать расширение pl с perl-script. Для этого достаточно добавить строчку: AddType perl-script .pl. И разрешить исполнение cgi в корневой директории. Для этого в внутрь узла <Directory «d:/wamp/www/»> добавить Options +ExecCGI
    3. Ну и на любителя, если уж совсем хотите, чтобы perl скрипты вели себя как php-шные привести DirectoryIndex к такому виду: DirectoryIndex index.pl index.php index.php3 index.html index.htm

Всего голосов 2: ↑0 и ↓2-2
Комментарии5

Пара слов про UTF-8

Время на прочтение6 мин
Количество просмотров45K
Perl долгое время ничего не знал про кодировки. Строка была просто последовательностью байтов, каждый держал там все что хотел, и лишь изредка приходилось задумываться о том, какая же все-таки кодировка у этих данных. Времена изменились, появился UTF; поддержать его пришлось и перлистам. Как это обычно бывает, in a perl way. Я надеюсь, что эта статья сбережет немного здоровья тем, кто до сих пор пребывает в неведении относительно реализации UTF-8 в Perl.
Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии53

Атрибуты: взгляд внутрь

Время на прочтение4 мин
Количество просмотров2.2K
Это продолжение статьи "Введение в атрибуты". Если Вы не знакомы с идеей атрибутов и их синтаксисом — советую начать с нее. Ну а в этой статье рассматривается, как устроены атрибуты изнутри, как с ними обращаться, и какие могут возникнуть проблемы.
Поехали?
Всего голосов 29: ↑27 и ↓2+25
Комментарии14

Атрибуты: введение

Время на прочтение2 мин
Количество просмотров2.6K
Атрибуты появились в Perl довольно давно. Знаменательная для старожилов версия Perl 5.005 содержала довольно бесполезную прагму attrs. Прагма эта позволяла навесить на функцию пару встроенных атрибутов, для чего требовалось указать внутри этой функции use attrs с соответствующими параметрами. Правда, уже в марте 2000 года в Perl 5.6 эта прагма была объявлена deprecated. На замену ей пришел модуль attributes, а также расширенный синтаксис для объявления переменных/функций. Стало возможным создавать для них собственные метки и вводить для этих меток обработчики. По непонятным причинам, популярность атрибуты так и не получили. А жаль.
Ближе к сути
Всего голосов 46: ↑42 и ↓4+38
Комментарии31

Корректное использование AUTOLOAD

Время на прочтение1 мин
Количество просмотров4.2K
Хотелось бы сразу предупредить: Это статья предназначена не для зубров, а описывает вполне обычный трюк с AUTOLOAD.

Введение



В Perl существует замечательная возможность отрабатывать вызовы к неопределённым методам.

Например, в случае
package Something;

our $AUTOLOAD;

sub AUTOLOAD
{
  return 'any data';
}

sub DESTROY
{
}

package  XTest;

my $o = new Something();

print $o->dry();


Результат будет равен 'any data'.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии12

Мучаем Last.fm и СDDB.

Время на прочтение4 мин
Количество просмотров4K
Случилось так, что за долгую меломанскую жизнь у меня скопилось более 1000 дисков уже «архаичного» формата аудио CD. А что же делать в эпоху социальных сетей, в общем, и Last.fm в частности, с таким количеством дисков? Правильно, надо отправить всё на Last.fm и желательно скопом, не слушая их на компьютере (хотя такое количество это всего полтора месяца непрерывного штурма соседских ушей), а кроме того аудио CD на компьютере я не слушаю. Чтобы решить такую «непростую» задачу надо всего четыре вещи: великий и могучий язык PERL, Last.fm API, CDDB и быть немного программистом.
Или к радости, или к сожалению, у меня есть только 3/4 от необходимого, так как программистом я не являюсь и никоим образом профессия моя к компьютерам не относима (sic!). Ну что же, глаза болят, а руки делают; желание иметь красивую статистику и профиль пересиливают отсутствие необходимых навыков :).
Итак, по порядку...
Всего голосов 45: ↑32 и ↓13+19
Комментарии30

Украинский воркшоп «Перл мова» — 2009

Время на прочтение1 мин
Количество просмотров488
Привет.
Спешу напомнить, что 7 марта, в Киеве пройдёт перловый воркшоп.
Это такая… миниконференция, а может быть и не мини.
В программе мероприятия доклады, и мастерклассы, а также беседы в кулуарах и кабаках с такими же как вы разработчиками, использующими перл. Особенно хочется отметить присутствие специально приглашённого гостя Джонатана Вортингтона, одного из разработчиков компилятора Perl 6 Rakudo.
Так же в программе серия блиц докладов. Так что если вам хочется о чём то расказать, или у вас есть инетесная разработка, или вы хотите поставить серьёзный вопрос, но 40 минут для вас слишком много, или вы неуверены в своих силах, то это лучший выход.

Участие в мероприятии бесплатное, атмосфера креативная и добрая.
Приглашаем.

Сразу хочу добавить, что в Москве такое тоже произойдёт этой весной, но чуть пожже.
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Вызов пользовательской функции в Perl из переменной

Время на прочтение1 мин
Количество просмотров2.5K
Да, понадобилось мне сделать такой изврат. В PHP — это call_user_func().

Учитывая, что в 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 ничего не выведет

Возможно, кому-то пригодится)
Всего голосов 7: ↑6 и ↓1+5
Комментарии16

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

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

Почему корпорации ненавидят Perl?

Время на прочтение2 мин
Количество просмотров7.9K
Организаторы конференции YAPC::Europe объявили, что главной темой в следующем году станет использование Perl на корпоративном уровне. А точнее — проблема, что делать с громадными объёмами некачественного кода, которые скопились за долгие годы.

Дейв Кросс, разработчик и журналист на технологические темы, всю жизнь создавал корпоративные системы на Perl, посетил вышеупомянутую конференцию, где побеседовал с представителями компаний. Он пишет в блоге O’Reilly ONLamp, что и сам мог бы заявиться на следующий год с докладом на тему «Почему корпорации ненавидят Perl». Это действительно несправедливо, считает Кросс.

Дейв Кросс не волнуется за своё собственное будущее как программиста, потому что до самой пенсии может быть обеспечен работой, поддерживая множество уже созданных систем. Однако факт в том, что многие крупные компании сейчас отказываются от Perl’а и собираются переписывать всё на Java + PHP.

В настоящее время сами разработчики веб-систем явно начинают относиться к Perl’у как к некому технологически устаревшему артефакту и в целом говорят о нём пренебрежительно. Такое настроение передаётся заказчикам, которые не разбираются в технологиях, однако теперь сразу начинают беспокоиться, едва услышав слово “perl”. Им не нужны «устаревшие» решения, они хотят красивые системы на новых технологиях.
Читать дальше →
Всего голосов 64: ↑50 и ↓14+36
Комментарии187

Тестирование программ Perl для начинающих. Test:: Simple

Время на прочтение2 мин
Количество просмотров3.3K
Test::Simple — это базовый, очень простой модуль, который используется для написания тестов.

Модуль дает возможность использовать для тестирования всего одну функцию — ok(). Если возможностей данной функции недостаточно, рекомендуется использовать Test::More. Тесты, написанные с помощью Test::Simple полностью совместимы с Test::More.

Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии6

Тестирование программ Perl для начинающих. Test Anything Protocol (TAP)

Время на прочтение3 мин
Количество просмотров4.8K
Прежде чем, я перейду к описанию работы с модулями Test::More, Test::Harness и Test::Simple, хотелось бы уточнить, что такое TAP — упоминание которого, время от времени, появляется при обсуждении темы тестирования программ.

Текст данной темы — в основном, перевод подходящего текста из Википедии (ссылка ниже).
Пожалуй, единственный материал в данной теме, который практически не подвергался мною никакой
обработке, кроме перевода. :)


Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Тестирование программ Perl для начинающих. Введение

Время на прочтение4 мин
Количество просмотров6.8K
Почему «для начинающих»? Потому что, данное руководство было составлено мною и для меня, в процессе изучения особенностей тестирования в целом и тестирования программ Perl — в частности. Не претендую на абсолютную полноту изложения темы, но, возможно, многим начинающим программистам эта статья будет полезна и укажет направление для дальнейшего самостоятельного изучения процессов тестирования.

Это только первая часть руководства. Введение :). Если сообществу будет интересно, опубликую и продолжение.

Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии20

17—18 мая в Москве пройдёт конференция YAPC:: Russia 2008 «May Perl»

Время на прочтение1 мин
Количество просмотров891
YAPC::Russia 2008 «May Perl»
В Москве пройдет конференция YAPC::Russia 2008 «May Perl» по языку программирования Perl. Это второе российское меропритие в серии, которую начал первый Perl-воркшоп в октябре прошлого года. Конференция на этот раз вышла на международный уровень и вошла в цикл мероприятий «Yet Another Perl Conference», проводимых при поддержке организации «The Perl Foundation». Мероприятие почти полностью посвящено распространённым практикам использования языка и развитию Perl6. И что особенно приятно, в программе довольно мало посвящено веб разработке, большей частью именно сам Perl.
Участие конечно же бесплатное.
Можно зарегистрироватся на сайте мероприятия и заявится на конференцию.
Кстати, база данных пользователей общая для всех YAPC, так что если вы настроены серьёзно — можно заявится на любое мероприятие…
Всего голосов 14: ↑14 и ↓0+14
Комментарии21

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