Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
BBC Russian
0.5

Perl *

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

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

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

BBC RussianСредний
BBC Russian14 мин
BBC Russian1.3K

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

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

Читать далее
BBC Russian+9
BBC Russian7

Новости

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

BBC Russian4 мин
BBC Russian2.3K

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

Читать далее
BBC Russian+28
BBC Russian9

Искусство README

BBC RussianПростой
BBC Russian13 мин
BBC Russian9K

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

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

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

Читать далее
BBC Russian+21
BBC Russian2

Истории

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

BBC RussianСредний
BBC Russian5 мин
BBC Russian2.4K

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

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

Читать далее
BBC Russian+29
BBC Russian7

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

BBC RussianПростой
BBC Russian7 мин
BBC Russian4.6K

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

Читать далее
BBC Russian+10
BBC Russian35

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

BBC Russian6 мин
BBC Russian14K

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

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

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

Читать далее
BBC Russian+7
BBC Russian1

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

BBC Russian6 мин
BBC Russian3.9K

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

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

Читать далее
BBC Russian-5
BBC Russian13

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

BBC Russian4 мин
BBC Russian6.2K

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

Читать далее
BBC Russian-3
BBC Russian32

perltidy и cp1251

BBC Russian3 мин
BBC Russian1.2K

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

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

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

Читать далее
BBC Russian+1
BBC Russian2

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

BBC Russian8 мин
BBC Russian3K

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

Для этого нужно усвоить несколько приемов
BBC Russian+1
BBC Russian2

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

BBC Russian2 мин
BBC Russian1.4K

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

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

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

Читать далее
BBC Russian+5
BBC Russian2

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

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

BBC Russian4 мин
BBC Russian3.7K

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

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

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

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

Читать далее
BBC Russian+24
BBC Russian18

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

BBC Russian1 мин
BBC Russian1.9K

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

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

Читать далее
BBC Russian+8
BBC Russian20

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

BBC Russian5 мин
BBC Russian1.8K

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

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

Читать далее
BBC Russian+4
BBC Russian0

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

BBC Russian4 мин
BBC Russian5.4K

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

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

Читать далее
BBC Russian+24
BBC Russian16

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

BBC Russian4 мин
BBC Russian2.4K

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

Читать далее
BBC Russian+2
BBC Russian9

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

BBC Russian7 мин
BBC Russian3.5K

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

Читать далее
BBC Russian+3
BBC Russian0

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

BBC Russian5 мин
BBC Russian4.6K

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

Читать далее
BBC Russian+7
BBC Russian23
1
23 ...

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