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

Perl *

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

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

Механика окружающей среды в фентезийном мире

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.2K

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

Сегодня я программирую на Raku. Raku — это молодой язык с длинной историей, сестринский язык к языку Perl. Я хочу продемонстрировать самые сильные стороны этого языка в контексте прототипирования игры и частично сравнить их с оригинальной статьей, языком имплементации которой был выбран Python. В течение статьи я буду оставлять раскрывающиеся блоки с объяснением тех или иных особенностей языка Raku, если вам интересно.

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

Новости

Perl 5.40.0: что нового спустя 11 месяцев? Изменения и дополнения в релизе

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

Не прошло и года, как разработчики дождались новой стабильной ветки языка программирования Perl — 5.40. При подготовке этого выпуска изменениям подверглись свыше 160 тыс. строк кода и 1 500 файлов. Всего в работе над релизом приняли участие 75 специалистов. Ну а подробности, как всегда, под катом.

Читать далее
Всего голосов 19: ↑19 и ↓0+28
Комментарии9

Искусство README

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.9K

Привет, Хабр!

На связи Андрей из сообщества ITMO.OpenSource. Мы считаем, что важно делать открытую науку, поэтому пишем об открытом коде, проводим митапы «Scientific Open Source» и разрабатываем научные решения с открытым кодом.

Мы убеждены, что открытая наука – это не просто код на github, но и совокупность факторов, которые позволяют этим кодом эффективно воспользоваться: запустить, модифицировать, внедрить в другие проекты. Поэтому я решил перевести популярную статью JS-разработчицы Киры Окли «Art of README». Несмотря на разницу в экосистемах (я пишу преимущественно на Python), мне кажется, многие идеи этой статьи актуальны для любого проекта на любом языке.

Читать далее
Всего голосов 17: ↑16 и ↓1+21
Комментарии2

Пролог в Perl

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.9K

Прогресс неумолимо стремится вперёд, заставляя программистов использовать git, docker и chat-GPT. В то же время древние технологии 60-х, 70-х, 80-х, 90-х и 2000-х предаются забвению...

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

Истории

Отладка приложений на Perl в Docker-контейнере

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.4K

Я Марсель Ардуанов, руководитель команды разработки VK и по совместительству Go-разработчик. После перехода в другое бизнес-подразделение я столкнулся с сервисами на языке Perl. Если вы посмотрите рейтинг языков программирования в 2023 году на Хабре, то увидите, что он не входит в этот список.

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

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

Инструменты сисадмина: Perl и Golang

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.6K

В статье отражен опыт применения языков Perl и Golang в повседневной работе бородатого сисадмина в качестве скриптового языка и показаны примеры использования.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии35

Обзор сканера Nikto для поиска уязвимостей в веб-серверах

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

Перед проведением атаки на целевой веб-сайт злоумышленнику необходимо собрать о нем как можно больше информации, а также найти уязвимости. Однако есть способ, который позволит раньше других найти уязвимости и тем самым повысить безопасность веб-сайта. Для этих целей используют специальные типы программ — сканеры уязвимостей.

Одним из самых известных и в то же время бесплатных является сканер Nikto.

В статье мы расскажем о базовых функциях сканера и о том, как его можно использовать  в «боевой» среде. Продукт интересен тем, что позиционируется как сканер для поиска уязвимостей на веб-серверах, в то время как большинство аналогов (такие как OWASP ZAP, wapiti, Arachni и другие) предназначены именно для поиска уязвимостей в веб-приложениях.

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

Разворачиваем сеть на RHEL8-based хостах

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

Развертывание ИТ-инфраструктуры с нуля — задача интересная и трудозатратная. Особенно, когда речь не о постепенном развитии (как это часто случается при поступательно-линейном росте бизнеса и, соответственно, его потребностей), а о куда более сжатых сроках, например, при открытии филиала или обособленного подразделения (другой вариант — необходимость в короткие сроки развернуть инфраструктуру для тестирования), где важную роль играет организация сети.

Конечно, первоначальная установка и настройка — это всегда полевая работа: монтаж СКС, сетевого оборудования и серверов; конфигурирование DHCP и организация удалённого доступа; иногда — заведение VLAN-ов.

Читать далее
Всего голосов 7: ↑1 и ↓6-5
Комментарии13

Пейджинг страниц в соцсетях

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

Для пагинации страниц используют смещение (OFFSET) и курсорную пагинацию (по ID), как более быструю. Тем не менее есть ещё один малоизвестный вид пагинации по меткам страниц (MARKS). Она является разновидностью курсорной пагинации, но использует не идентификатор, а ряд полей перечисленных в ORDER BY SQL-запроса.

Читать далее
Всего голосов 6: ↑1 и ↓5-3
Комментарии32

perltidy и cp1251

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

В 2000-х определилась тенденция переводить проекты в национальных кодировках в utf-8. Однако не везде их перевели одним махом, а решили рубить собаке хвост постепенно. В результате во многих проектах часть файлов c кодом в utf-8, а часть осталась в национальной кодировке (например, cp1251).

Поэтому я сделал утилиту ru-perltidy, которая определяет кодировку файлов, конвертирует в utf-8, а после форматирования переводит обратно.

Из вкусносей тут то, что ru-perltidy может отформатировать только изменённые в репозитории git файлы (Рис.1).

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

use bigint в perl

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

В зависимости от версии мантисса целых чисел в perl 40-бит (5 байт) или 64-бит (8 байт).

Проверить сколько бит отводится на число в текущем perl довольно просто:

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

Обработка текста с помощью textutils с примерами

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

Набор утилит для потоковой обработки текста появился уже в первых версиях Unix и доступен практически везде. Это такие команды как cat/tac, head/tail, cut, grep, sed, sort, uniq, wc, nl, fmt. Каждая из этих утилит выполняет свою простую обработку текста, но комбинируя их в конвейере, т.е. передавая стандартный вывод одной команды на вход следующей, можно обрабатывать тексты произвольного размера или быстро решить некоторые задачи.

Для этого нужно усвоить несколько приемов
Всего голосов 5: ↑3 и ↓2+1
Комментарии2

Сохранение пакетов Perl через local

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

В perl есть выражение local. Оно подменяет указанное значение undef-ом до конца блока. В качестве значения могут выступать глобальные хеши, массивы и скаляры, а так же элементы или срезы хешей и скаляров.

Проблема в том, что хеши пакетов local не сохраняет.

Под хешами пакетов я понимаю хеш с двоеточием на конце (%Пакет::) в котором хранятся символы пакета (GLOB).

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

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

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

Об использовании пустого регулярного выражения в Perl ( m// )

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

На днях делал отсечение элементов списка не подходящих под регулярку введённую пользователем:

...
my $re = get_text_in_filter();
@list = grep { /$re/i } @list;
...

$re был пустой строкой и в @list должны были остаться все элементы.

Так и происходило при первом проходе, а при втором регулярка не пропускала ни одного элемента списка.

Читать далее
Всего голосов 17: ↑16 и ↓1+24
Комментарии18

Перезапись специальных переменных Perl регулярными выражениями

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

Когда-то я стал писать на perl из-за встроенных в язык регулярных выражений. Просто пишешь "abc" =~ / (?<x> a) /x; и вуаля: устанавливаются переменные $&, $1, %+, $`, $'.

Однако эти же переменные перезаписываются при использовании следующей регулярки:

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии20

Dancer2 или современное web-приложение на PERL. Часть III

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

Современные web-приложения в большинстве случаях хранят данные в SQL базах данных. Для доступа к этим данным используются объекты модели, которые позволяют совершать все основные операции: SELECT, INSERT, UPDATE, DELETE, но не ограничиваясь ими.

В этой части мы поговорим про работу с базой в Dancer2, а также научимся создавать модели и миграции на основе DBIx::Class (можно сказать, что эта статья является вводным руководством и по нему).

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

Ищем дубликаты фотографий с помощью Perl

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

За 20 лет у меня скопилось несколько тысяч фотографий: праздники, свадьбы, рождение детей, и прочее, прочее... Понятно что снималось всё это на разные цифровики, присылалось почтой, сливалось через ICloud и GDrive, FTP, самба и т.п. По итогу всё это превратилось в дикий хаос папок и что-то найти в архиве можно было только с большим трудом.

В какой-то момент мне нечем было заняться это надоело и я за пару дней накидал скрипт, который всё это безумие раскидал по годам->месяцам->дням. Понятно, что и эта задача не такая простая как кажется на первый взгляд, что например делать с фото, у которых дата создания 1970? Но в этой статье я хотел бы рассказать о другом.

Читать далее
Всего голосов 24: ↑22 и ↓2+24
Комментарии16

Dancer2 или современное web-приложение на PERL. Часть II

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

Лето близится к концу, однако ещё остались дни, чтобы насладиться солнцем, отпуском, Perl и Dancer2. Последним двум будет посвящена эта статья. Сегодня поговорим про шаблоны, сессии и флэш-сообщения.

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

Как удобно мониторить Citrix XenDesktop

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

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

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

Dancer2 или современное web-приложение на PERL

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

Perl, созданный аж в 1987 году, в 2021 продолжает успешно применяться в различных сферах IT. А вместе с фреймворком Dancer и с задачей создания web-приложения справляется легко и непринужденно.

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

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