@Shura

Тег perl в блоге Shura

Shura

Использую так редко, что забываю как делать именованные совпадения в регекспах. Запишу на память:
/(?<name>.+)/
Потом обращаться как $+{name}

Shura

Случайно сегодня узнал о таком пакете как Capture::Tiny - позволяет удобно захыватывать вывод запускаемых программ.
https://metacpan.org/pod/Capture::Tiny

Shura

Для чтения, записи и вообще работы с файлами использую модуль Path::Tiny. Он всем хорош, за исключением дурацких названий функция для чтения и записи в файл, это slurp и spew соответственно. Хоть убей, не могу их запомнить, каждый раз приходится в справку лезть, чтобы посмотреть их названия

Shura

/The top 10 tricks of Perl one-liners/
https://blogs.oracle.com/ks...s-of-perl-one-liners

Shura

Есть тут люди, пишущие на перл? Вы какой текстовый редактор используете?
Пользовался Komodo Edit, но в последней версии из него взяли и выпилили плагин source, который предоставлял навигацию по функциям. Куды бечь? Неужели на python?

Shura

По мотивам #owdkx вспомнилось, что я так и не смог разобраться ни с sed, ни с awk. Мне проще набросать скрипт на perl, чем вникать в многостраничные маны

Shura

А почему Komodo IDE стоит таких конских денег? Им что, кто-то пользуется что ли?

Shura

Как вернуть undef из функции в perl: http://perlmaven.com/how-to...ndef-from-a-function

Shura

Есть файл, первая строка которого начинается с символа # и почему-то она не ловится регекспом /^#.*/
Все остальные строки, которые начинаются на решётку, ловятся, первая - нет. Без символа начала строки ^ ловится и первая. Что за фигня? Начало файла не подразумевает начала строки?

Shura

Написал вчера модуль для конвертирования gpx -> geojson, но возникла проблема. Для сопоставления фоток и заметок с местоположением используются отметки времени, присутствующие в gpx треке, но не предусмотренные в geojson. Получается, что при конвертировании я теряю ключевую информацию. Надо что-то придумывать.

Пока попробую хранить массив с временными отметками отдельно, в секции properties, посмотрим, справится ли с таким монга.

Shura

Удивительно, но не нашлось ни одного модуля, который умел бы конвертить gpx в GeoJSON. Вот такая подстава, буду сам писать, на регекспах.

P.S. GPSBabel тоже не умеет в GeoJSON, говно.

Shura

Копался в гугле и случайно наткнулся на интересный проект для ведения домашнего блога - plerd
Создаём файлы в маркдауне, они автоматом конвертятся в html и закидываются в блог. Всё на статике, отлично работает с dropbox.

Plerd is meant to be an ultralight blogging platform for Markdown fans that plays well with (but does not require) Dropbox.

It allows you to compose and maintain blog posts as easily as adding and modifying Markdown files in a single folder. Plerd creates an entirely static website based on the content of this one folder, automatically updating the site whenever this content changes.

Shura

Вот, ну наконец-то! http://habrahabr.ru/post/270069/
Жаль, что в пятёрку портировать нельзя.

Shura

В Perl можно подгружать модули на лету, если это необходимо.
Например код:

my $m = eval
{
    require Module::Name;
    1;
};
$m or return;
# тут код, который надо выполнить, если модуль загружен
Shura

Вот есть такая библиотека libgphoto2, ей уже лет 10 наверное, но она до сих пор развивается. Библиотека довольно популярна, её используют многие проекты, в том числе kde. И есть perl, к которому есть куча модулей и вообще он из тех же времён, что и libgphoto, но парадокс! Под perl нет биндингов для этой библиотеки. Под python есть, а под perl нет!

Shura

Написал программу для подключения фотоаппаратов canon по wi-fi к компьютерам с linux, а то родные их программы только под винду, да под мак.
Называется camwatcher, исходные коды: https://bitbucket.org/Shura0/camwatcher

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

Качаем, тестим: https://bitbucket.org/Shura...nloads/camwatcher.pl

p.s. ах, да, на перле!

Shura

Оказывается в perl6 добавили маханизм для разбора опций, переданных через командную строку:
http://habrahabr.ru/post/252451/

Shura

Скачиваем несколько страничек в параллель с AnyEvent
http://perlmaven.com/fetchi...allel-using-anyevent

Shura

Хм, какая интересная штука получается

perl -E 'say .1 + .2 - .3'
5.55111512312578e-17

$ ruby -e 'puts 0.1 + 0.2 - 0.3'
5.551115123125783e-17

$ python -c 'print .1 + .2 - .3'
5.55111512313e-17

$ echo "puts [expr .1+.2-.3]"|tclsh
5.551115123125783e-17

Но спасение есть:

$ perl6 -e 'say .1 + .2 - .3'
0

http://perlnews.ru/blog/201...ove-perl6-cobol.html

Shura

Присвоение дефолтных значений в perl
http://perlmaven.com/how-to...fault-values-in-perl

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.