Архив ‘perl’

Логин и парсер Яндекс.Вебмастера

Волею судеб захотелось отфильтровать в одном дампе индексат от неиндексата — полез в Яндекс.Вебмастер. Ну, сразу перейду к расстройству что даже в Я.Вебмастер показывается только первая 1000 проиндексированных страниц — но парсер уже был готов, допиливать его не стал. С использованием Jum::Web::Crawler — функцию под него я уже постил use strict; use Jum::Web::Crawler; my $login […]

DevConf’2011 — 4 июня

http://devconf.ru Буду дебютировать в роли докладчика на Perl-секции — http://devconf.ru/offers/24 , в 18-00, закрывая секцию. «Концепция алгоритма построения стабильного многопоточного приложения которое обрабатывает слова, нормализуя их с помощью инструмента от Яндекса — mystem.» Учитывая, что это будет мой первый доклад на конференции, волнуюсь и уже в третий раз переписал текст. Будет немного скучно, но полезно […]

Построчно вывести два файла рядом

Самый оптимальный способ вывести два больших файла «рядом» Предположим, что есть два файла 1.txt cодержит: 1 2 3 4 5 2.txt содержит 6 7 8 9 0 Надо вывести запись из файла 2.txt рядом с записью 1.txt perl -le ‘open F,»<$ARGV[0]»;while(<STDIN>){chomp;print «$_\t».readline(*F);}close F;’ 2.txt

Perl 6 — или грядёт апокалипсис

А знаете ли вы о том, что в Perl6 можно будет сделать так: «perl -le ‘say q[Hello];’» ? А можно будет сделать и так: «perl -le ‘q[Hello].say;’» Это — апофеоз.

Локальные модификаторы в RegEx — используй кластер, Люк

В жизни каждого программиста наступает момент, когда ему надо выцепить кусок текста, независимо от регистра — но в контексте зависимого от регистра текста. На помощь приходят локальные модификаторы — например, — в пределах кластера это будет так: -bash-3.2$ perl -le ‘my $x = «Abc»; print «ok» if $x =~ /(?i:a)b/;’ ok -bash-3.2$ perl -le ‘my […]

Bidirectional pipe для mystem в Perl

Когда нормализуешь слова с помощью mystem — лучше использовать bidirectional pipe, вместо того, чтобы каждый раз открывать новый процесс. Это очень просто. Учитывая долбанутость mystem, мы будем отбрасывать слова с цифрами и ждать подольше. На всякий там. Пробелы он превращает в _, так что триггеры обоснованы. #!/usr/bin/perl -w use strict; use FileHandle; use IPC::Open2; use […]

WoW — гребем достижения в ЖЖ

Суть проста — выгрести из Армори последние ачивы, проверить — не постили ли раньше, запостить в ЖЖ. Накидалось на коленке, я использую БД в расширенной версии скрипта — но решил и такой мелкий написать :) UPD — чёт ппц криво получился этот сниппет в опубликованном виде. Аттачу ссылку на оригинал. Plain-Text #!/usr/bin/perl -w use strict; use Digest::MD5 qw[md5_hex]; use WWW::Curl::Easy; […]

Perl, RegEx и LookAhead — форматируем MAC-адрес

Задача — из 001e8c15ffbc сделать 00:1e:8c:15:ff:bc Решение — perl -le ‘my $x = «001e8c15ffbc»;$x =~ s/(..(?!\Z))/\1:/g; print $x’ Разберем по кусочкам этот примитив. (..(?!\Z))/\1: .. — два любых символа (можно написать длиннее, если сомневаемся, что к нам придёт именно мак) — например, [a-f\d]{2} (?!\Z) — заглянем вперёд — нет ли там конца строки. Если есть […]

Perl — удалить из массива несоответствующие условию элементы

Удаляем все элементы, которые не цифры. Работаем с референсом. #!/usr/bin/perl use strict; use Data::Dumper; my $a = [234235,’a’,345,34234,23121]; $a = [grep {/^\d+$/ } @$a]; print Dumper $a; UPD Rommeech заметил багу, исправил

Новый логин Вконтакте — Perl, Curl

Собственно, уже не мудрствуя лукаво — кто хоть немного знает перл — разберётся. Вконтакте добавили редиректики, что не помешает доблестному Curl через них пройти и получить куку в файл. #!/usr/bin/perl -w use strict; use WWW::Curl::Easy; use Carp; sub getURL {   my $params = shift;   croak q[HASH needed as param] if ref($params) ne ‘HASH’;   croak q[HREF […]