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

Perl *

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

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

Пролог в Perl

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

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

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

Новости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Истории

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

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

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

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

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

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

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

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

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

perltidy и cp1251

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

В 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.4K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SNMP MIB браузер (продолжение)

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

Сначала хочу немного вернуться назад. В первой части я не написал, для чего вообще нужен MIB браузер и сами MIB модули, ведь многие как-то и без всего этого обходятся и вполне себе мониторят свои сети. Как правило для этого используется цифровой OID вида ".1.3.6.1.4.1.171.11.113.1.3.2.2.3" и тематические форумы пестрят запросами "А подскажите OID для того чтобы ...". При желании можно и самому найти нужный OID сделав walk где-то поближе к ветке private.

MIB браузер как раз и является тем инструментом, который позволит Вам упростить работу с оборудованием. Это фактически тоже самое, что иметь иерархическую структуру в базе данных с быстрым и удобным поиском, индексами, типами данных. Вы получаете быстрый доступ ко всем датчикам и триггерам оборудования, с возможностью их создания/правки. Тем самым становится проще администрировать сети, выявлять ошибки и быстрее реагировать на неисправности. Особенно это важно при работе с новыми моделям, ранее неизвестными Вам.

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

SNMP MIB браузер на Perl и JavaScript

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

Что делать на работе, если не знаешь, чем бы еще заняться? Конечно же писать на Хабр!

Благодаря нашим доблестным законодателям, дальнейшее развитие бизнеса самостоятельно - нерентабельно и мы уходим под более крупного оператора. Вот у меня и сложилась такая ситуация, что смысла дорабатывать, переписывать и исправлять свои старые проекты - нет, у "крупняка" все сервисы свои. Сижу, курю. А потом думаю, а чего сидеть-то, напишу-ка я на Хабр. Статья прошла модерацию, «И тут Остапа понесло...».

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

Пишем PBX на Perl для Yate

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

Когда-нибудь я напишу что-то в духе "Как я стал программистом в 40 лет". Но точно не сегодня, к тому же мне давно уже не 40 и программистом я себя не считаю. А рассказать я хотел бы о своём опыте разработки PBX для собственных нужд. В качестве VoIP движка используется Yate, фронт- и бэкенд будет на Perl.

Часто встречаю в комментариях к статьям вопросы: "Почему не (далее идут любимые варианты комментаторов)?". Итак, по порядку.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии3
1
23 ...
Изменить настройки темы

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