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

Perl *

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

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

Perl6 — Работа с функциями

Время на прочтение3 мин
Количество просмотров4.5K
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки
3. Perl6 — Условные операторы, циклы

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

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

Perl6 — Условные операторы, циклы

Время на прочтение3 мин
Количество просмотров7.6K
1. Особенности работы с переменными и литералами в Perl6
2. Perl6 — Операции над переменными, анонимные блоки

В данной статье мы рассмотрим условные операторы и циклы, а также проведем несколько небольших экспериментов по их использованию.

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

Perl6 — Операции над переменными, анонимные блоки

Время на прочтение4 мин
Количество просмотров6.3K
1. Особенности работы с переменными и литералами в Perl6
В предыдущей статье я описывал особенности работы с переменными, а также затронул контексты. В данной статье, я хочу поделиться результатми своих экспериментов и поисков на тему использования переменных, а также коротко описать особенности анонимных блоков кода.
Приступим

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

Что должен знать начинающий Perl разработчик о перловой инфраструктуре

Время на прочтение5 мин
Количество просмотров35K
В связи с тем, что дефицит кадров в ИТ отрасли велик, а перловиков совсем мало (а те, что есть, уже хотят быть техдирами и получать много денег), многие конторы с радостью берут способную молодёжь для превращения в перловиков.
Компания, в которой я сейчас работаю, тоже об этом задумалась и я вспомнил свою идею набросать некую шпаргалку-карту для начинающих шеф-поваров по приготовлению перловой каши.

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

Конечно бывает что технологии умирают, однако если посмотреть на даты в истории коммитов в репозитории перла и даты в ленте заливки/обновления дополнительных модулей, то не скажешь что перл зачах — жизнь кипит ежедневно. Как-то я специально мониторил модули на CPAN — десятки модулей обновляются/заливаются ежедневно.

Также отмечу что весь свободный софт, и перл не исключение, делается для Unix-подобных ОС, на винде всё это можно делать, но не нужно, рекомендую сразу осваивать нормальную для девелопера ОС (GNU/Linux, FreeBSD).

Как обычно всё будет в шпаргалочном стиле, ссылки будут в основном на официальные доки, всяких док для быстрого старта полно в сети:
Читать дальше →

Особенности работы с переменными и литералами в Perl6

Время на прочтение7 мин
Количество просмотров5.6K
Не так давно я решил начать изучать Perl6, даже не смотря на то, что фактически полностью работающего компилятора ещё нету. Подумал что можно смотреть Synopsis'ы, смотреть что из написанного в них уже работает, и изучать как именно это работает на различных примерах. Этим я и начал заниматься, попутно записывая себе в блокнот результаты различных манипуляций с переменными.
И вот в качестве своего первого поста я решил поделиться своими познаниями: тем, что обычно авторы материала оставляют на самостоятельную «проработку» — ответы на вопросы по типу «а что будет если ...» или «а что из себя это представляет в языке».
В этой статье Я опишу какие основные типы данных есть в этом языке и частично затрону вопрос о контекстах — одной из основных особенностей языка Perl.
Читать дальше →

Четыре профессиональные деформации программистов на языке Perl, демонстрируемые на живом примере

Время на прочтение8 мин
Количество просмотров8.7K
Эдсгер Вибе Дейкстра оказался известен, в частности, как автор нескольких ёмких и выразительных высказываний, очерчивающих бездну профессиональной деформации программистов, предпочитающих тот или иной неуютный язык программирования. Небезызвестны, в частности, следующие оценки Дейкстры (я процитирую их по Викицитатнику):

  • «Программирование на КОБОЛе калечит мозг, поэтому обучение ему должно трактоваться как преступление». («The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense».)
     
  • «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». («It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration».)

Дейкстра умер 6 августа 2002 года. Сегодня, спустя десять с небольшим лет после его смерти, мы вправе оглянуться вокруг и спросить себя: а насколько изменились обстоятельства? Иными словами: а сейчас (в наши дни) среди широко употребляемых языков программирования есть ли такие языки, использование которых влечёт для склонных к ним программистов почти неминуемый риск заметной профессиональной деформации?

Как мне кажется, они есть; и это прежде всего те языки, которые подпадают под определение write-only language, то есть поощряют написание такого исходного кода, прочтение и понимание которого слишком трудно, неоправданно трудно (как правило, даже труднее, чем его написание автором кода), хотя в нормальных языках должно быть наоборот.

Наиболее употребительным из таких языков является Perl.

Будьте покойны: я не намерен просто ткнуть пальцем в Perl и объявить, что он плох. Это вышло бы слишком малоубедительно без доказательств и подробностей. И именно поэтому прямо сейчас на примере, взятом из жизни, я покажу вам четыре механизма, при помощи которых Perl воздействует на сознание программиста и поощряет сочинение им такого кода, который оказывается неприглядным write-only.

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

Amazon Glacier: клиент на Perl с многопоточной/multipart закачкой

Время на прочтение4 мин
Количество просмотров4.7K
image

Amazon Glacier


Вкратце — Amazon Glacier — это сервис с очень привлекательной ценой сторейджа, созданный для хранения архивов/бэкапов. Но процесс восстановления архивов довольно сложный и/или дорогой. Впрочем, сервис вполне пригоден для secondary backup.
Подробнее про Glacier уже писали на хабре.

О чём пост


Хочу поделиться Open Source клиентом на Perl для синхронизации локальной директории с сервисом Glacier, также расказать о некоторых ньюансах работы с glacier и описать workflow его работы.
Читать дальше →

Я просто оставлю это здесь

Время на прочтение3 мин
Количество просмотров8.7K
Я не ставлю цель обо очернить Перл. Я люблю Перл.
Просто надо различать список и массив в Перле.

use Perl or die;


#!/usr/bin/perl
use strict;
my $x = ('a', 'b');
print $x;

Вывод:
b

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

Скрипт мониторинга процессов MySQL на Perl

Время на прочтение6 мин
Количество просмотров6.9K
Всем привет.

Более пяти лет я работаю системным администратором в хостинговой компании, обслуживаю более сотни серверов с freebsd и centos. За это время накопилось много самописных скриптов, облегчающих мне жизнь. Этими скриптами хочу поделиться с сообществом, да и выслушать здоровую критику никогда не помешает.

Предыстория.
Читать дальше →

Сборки Rakudo Star для Windows теперь будут регулярными

Время на прочтение1 мин
Количество просмотров662
Разработчики Rakudo обещают отныне регулярные сборки для Windows с каждым ежемесячным релизом Rakudo Star.

На данный момент доступен Windows installer for Rakudo Star 2102.07 (предыдущие сборки для Win от 2011.04 и 2010.07).

Готовность по фичам Rakudo можно увидеть здесь.

Перечень «граблей» внедрения websocket′ов на клиентские веб-ресурсы конструктора сайтов

Время на прочтение3 мин
Количество просмотров12K
Websocket′ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.

В результате внедрения websocket′ов наш проект получил возможность в реальном времени менять по своему усмотрению отображение страниц в браузере на протяжении всей клиентской сессии и иметь обратную связь.

В ходе построения всей технологической цепочки мы легко перешагнули через проблемы с браузерами, лишь изредка не поддерживающими либо сами websocket′ы, либо их эмуляцию через flash.

Однако, когда дело дошло до полевых испытаний, обнаружилась масса проблем с ISP, всеми мыслимыми и немыслимыми способами пытающимися сэкономить трафик за счёт своих клиентов. Об этих и других «граблях» полноценного боевого внедрения websocket′ов читайте под катом.
Читать дальше →

Распаковка Perl2Exe

Время на прочтение7 мин
Количество просмотров7.5K


Одним из наиболее часто используемых продуктов для создания standalone-приложений из perl-скриптов и организации какой-никакой защиты является продукт IndigoStar Perl2Exe. Периодически возникают ситуации, когда исходный код скрипта потерян, а на руках имеется только полученный с помощью этой программы exe-файл, но всенепременно хочется добраться до сорцев. Разберемся, как это сделать.
Читать дальше →

Взаимодействие веб-сервисов через REST

Время на прочтение8 мин
Количество просмотров11K
При разработке современных веб-сервисов зачастую появляется вопрос, каким образом обеспечить простое и прозрачное взаимодействие нескольких разнородных систем. Благо, выбор большой: здесь и SOAP, и CORBA, и DCE/RPC, и, конечно же, REST. О создании межплатформенного API на его базе и пойдет речь.
Читать дальше →

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

Simple automation: фотоальбом

Время на прочтение5 мин
Количество просмотров3.3K

Зачем и почему


Эту статью меня побудил написать гневный отзыв одного хабрапользователя, заявившего, что, в переводе на русский, звучит примерно так: «хорош писать комментарии, пиши что-то полезное».

Послав его куда подальше и немного подумав, я решил, что он-таки прав, тем более что я вроде как не первый год пишу всякий код и наверняка есть, о чем рассказать — а вдруг кому пригодиться. Оглянувшись назад, вспомнилось, что как-то была задачка автоматизировать создание фотоальбома. Так почему бы не написать об этом?

Подробности

1532 дня без изменений в коде

Время на прочтение1 мин
Количество просмотров1.5K
Американский разработчик Райан Детзел (Rayan Detzel) рассказал удивительную историю, как однажды ему на мобильный телефон позвонила незнакомая девушка и спросила, он ли является владельцем сайта Invoice Journal — и когда отправка/получение инвойсов заработает? Райан с трудом вспомнил название этого проекта, который четыре года написал в электричке по дороге на работу. Он удивился, что кто-то вообще им пользуется.

Придя домой, автор быстро исправил ошибку в настройках сервера Apache — и проверил логи «заброшенного» проекта. Оказалось, что за прошедшие 4 года 2 месяца и 12 дней люди не просто им пользовались, а каждый месяц регистрировалось более сотни новых аккаунтов. Все эти годы трафик стабильно рос.
Читать дальше →

Локализация проектов написанных с использованием MVC Framework Catalyst

Время на прочтение5 мин
Количество просмотров2.7K
Catalyst Web FrameworkПредположим ещё имеются отчаянные товарищи изучающие и доказывающие преимущество Perl перед иными средствами web-разработки. Ещё реже среди них находятся те, которые оценили фрэймворк Catalyst, не испугавшись отсутствия документации на русском. Считаю, что те, кому будет интересен этот пост уже знакомы как создать новый проект, добавить во View TT и установить с CPAN недостающие детали.

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

По скольку Perl — значит gettext, но не всё так просто. Перейдем к практике.
Читать дальше →

Публикация модуля на cpan

Время на прочтение3 мин
Количество просмотров2.7K
Хочу поделиться опытом первой публикации своего модуля на cpan.org. Будем считать, что сам модуль уже написан. В моем случае это был модуль VK::App. Речь пойдет о том, как правильно собрать дистрибутив и опубликовать его на cpan.org.

Публикация модуля состоит трех этапов:
  • регистрация на pause.perl.org
  • сборка дистрибутива модуля
  • регистрация названия модуля и загрузка дистрибутива на сервер pause.perl.org.

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

VK::App — модуль для создания клиентских приложений в vk.com

Время на прочтение3 мин
Количество просмотров27K
Хочу рассказать о своем модуле VK::App для создания клиентских приложений в социальной сети vk.com. Основные возможности модуля:
  • Авторизация, основанная на OAuth 2.0, по логину/паролю или cookies.
  • Установка прав доступа, которые потребуются приложению.
  • Выполнение любых запросов VK API и получение результата в JSON, XML или Perl Object виде.
Модуль использует минимум зависимостей: только LWP и JSON.
A пользоваться им очень просто

Moose: ООП в Perl

Время на прочтение4 мин
Количество просмотров12K
Moose — расширения для Perl 5, позволяющее упростить реализацию ООП.

Создание класса происходит очень легко:
package MyClass;
use Moose;


все, пустой класс создан. Он может иметь произвольное количество: аттрибутов, методов, суперклассов, модификаторов метода, конструктор(1шт), деструктор(1шт) и мета-класс(1шт) который содержит все метаинформацию о данном классе.

Теперь подробнее об этих составляющих:
Читать дальше →

Основные принципы работы с MVC Framework Catalyst

Время на прочтение4 мин
Количество просмотров8.3K
Предисловие
На Хабре очень мало, точнее совсем нет статей о таком замечательном MVC фреймворке, как Catalyst. И поэтому свою первую статью я решил посвятить именно ему.
Здесь я описал основные принципы для работы с Catalyst на примере простенького веб-приложения, так называемый быстрый старт для освоения данного фрейморвка

Введение
Catalyst — это мощный MVC фреймворк для разработки веб-приложений на Perl.
Пару слов об MVC (Model/View/Controller):
  • Модель (Model) — содержит только данные и методы для работы с ними.
  • Вид(View) — отвечает за то, как именно эти данные будут выглядеть.
  • Контроллер(Controller) — управляет связью между системой и пользователем, а также контролирует необходимые взаимодействия при работе приложения.

Catalyst — содержит обширное количество модулей CPAN, которые облегчают разработку веб-приложения на языке Perl.

В чем состоит простота при использовании данного фреймворка?
Читать дальше →

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