Одна из приятных сторон в организации конференций — возможность получать удовольствие, косвенно (например, оплатив фуршет :-) участвуя в развитии перла и его приложений.
Александр Сапожников после блица Анатолия Шарифулина выложил на CPAN свой первый модуль Lingua::RU::Inflect, предназначенный для склонения русских имен.
Тест-драйв (с массой бойлерплейтов перед основным кодом :-):
use v5.10;
use utf8;
use open qw(:std :utf8);
use strict;
use Lingua::RU::Inflect qw(:all);
say inflect_given_name(GENITIVE, 'Андрей');
say join ' ', inflect_given_name(GENITIVE, 'Андрей', 'Борисыч');
Программа печатает
Андрея
Андрея Борисыча
Нелитературное Борисыч просклонялось правильно :-) Такой вот лингвоспан.
Интересно, что inflect_given_name ожидает после падежа увидеть фамилию, а уже затем имя и отчество. Однако всё равно просклоняла правильно :-)
Надо будет в следующих версиях добавить тест на неожиданный порядок частей имени. И парсер имён, чтобы не разбивать имя на части самому.