Skip to content

Instantly share code, notes, and snippets.

View klopp's full-sized avatar

Vsevolod Lutovinov klopp

  • Russia
  • 13:41 (UTC +03:00)
View GitHub Profile
@klopp
klopp / format-text.pl
Last active April 26, 2019 10:53
Тестовое задание
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Дан текст, состоящий из нескольких строк произвольной длины. Нужно разбить его
# на абзацы и юстифицировать, то есть оформить в виде текста шириной в N (20 - 120)
# символов, выровняв по правой и по левой границе. Ширину строки следует увеличивать
# за счет добавления пробелов — по одному, начиная с правого края. Окончанием абзаца
# считается строка, которая заканчивается на соответствующие знаки пунктуации.
# Новые абзацы должны начинаться с красной строки в четыре пробела. Абзац из одной
# строки длиной менее половины N — это заголовок, его юстифицировать не нужно.
# ------------------------------------------------------------------------------
@klopp
klopp / fcompare-md5.pl
Last active December 14, 2019 10:42
ха
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Написать программу которая сравнивает два текстовых файла (например терабайтных)
# и выводит в третий файл строки, которые есть в первом, но нет во втором.
#
# Мой вариант, конечно, немного хулиганский. Но возьмём, к примеру, два одинаковых файла
# с "Войной и миром", да поправим в одном из них пару строк для контроля. Вариант
# "в лоб", с двумя циклами а-ля
#
@klopp
klopp / anyevent-getter.pl
Last active May 6, 2016 19:46
Тестовое задание
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Необходимо разработать консольное приложение на базе фреймворка AnyEvent,
# которое принимает список URL из STDIN, вызывает их все сразу в
# неблокирующем режиме, выводя на экран полученные ответы по мере их получения
# и статистику по скорости вызова каждого урла после завершения всех вызовов.
# ------------------------------------------------------------------------------
use Modern::Perl;
use AnyEvent::Fork;
@klopp
klopp / tsv-insert.pl
Last active July 7, 2016 17:26
Тестовое задание (Яндекс, 11 мая 2016)
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Напишите программу на Perl, которая получает первым аргументом командной
# строки имя tab-separated файл и записывает его содержимое в таблицу БД.
# Таблица создана таким запросом:
#
# create table banners (
# banner_id int unsigned not null primary key,
# title varchar(200),
@klopp
klopp / json-rpc.pl
Created June 29, 2016 20:01
Тестовое задание
#!/usr/bin/perl
# ------------------------------------------------------------------------------
# Разработать JSON-сервис на Perl:
# * загружает из файла настроек порт, параметры коннекта к БД и список
# разрешенных методов и начинает слушать заданный порт
# * получает запрос JSON-RPC (содержит внешнее имя метода и аргументы)
# * конвертирует запрос в SELECT * FROM name(args) и выполняет его в БД Postgresql
# * возвращает JSON-RPC структуру с результатом запроса или описанием ошибки
# ------------------------------------------------------------------------------
@klopp
klopp / mojo-spider.pl
Last active July 13, 2016 15:26
Тестовое задание
#!/usr/bin/env perl
# ------------------------------------------------------------------------------
# Написать скрипт, который принимает в аргументах url с сайтом и делает
# рекурсивный обход всех страниц этого сайта (как указанного в аргументе,
# так и его поддомены, если они будут встречаться) и выводит их в виде дерева
# на stdout.
#
# Необходимо использовать Mojo::IOLoop, Mojo::UserAgent и Mojo::DOM для решения.
#
@klopp
klopp / calc.c
Last active July 18, 2016 10:49
Тестовое задание
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <limits.h>
/* ----------------------------------------------------------------------------
* Напишите программу, которая считывает со стандартного ввода строку и выводит
* на стандартный вывод значение арифметического выражения, содержащегося в
* этой строке.
#!/usr/bin/env perl
# -----------------------------------------------------------------------------
use Modern::Perl;
use AnyEvent;
use AnyEvent::HTTP;
use Const::Fast;
# -----------------------------------------------------------------------------
# Задача: распараллелить N действий так, чтобы в T секунд совершалось не больше
@klopp
klopp / ctu.c
Created September 16, 2016 09:11
Тестовое задание
#define _GNU_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
/* -----------------------------------------------------------------------------
* Написать функцию, которая меняет первые буквы слов на заглавные и сохраняет
* их в отдельную строку.
*
#
# Чем отличаются между собой переменные, объявленные с помощью my, our,local, state?
# Что и почему напечатается, если в качестве XXX подставлять вышеуказанные 4 типа объявления переменных?
#
func() for 1..10;
sub func {
my $var;
$var++;
say "A=$var";
}