Мой коллега подготовил и опубликовал модуль TinyURL::RU для работы с сайтом byst.ro (он же — tinyurl.ru).
Интерфейс модуля предельно прост и содержит две функции: shorten для сокращения адреса и lenghen для обратного преобразования:
use TinyURL::RU qw(shorten lengthen); say shorten("http://ironman.enlightenedperl.org/"); say lengthen("77d");
Наш tinyurl.ru выгодно отличается от других подобных сервисов тем, что дает возможность самостоятельно выбрать, как будет выглядеть короткий адрес: а именно, попробовать запросить и часть адреса после слеша, и даже поддомен третьего уровня:
my $tower = shorten("http://maps.google.com/maps. . .", "pisa", "tower");
Этот пример создаст адрес pisa.byst.ro/tower (если он, конечно, был доступен на момент запроса).
Модуль содержит плагин WWW::Shorten::TinyURL::RU, который может работать вместе с WWW::Shorten Дейва Кросса.