Perl
Наиболее часто используемый Perl-драйвер – tarantool-perl. Он не входит в репозиторий Tarantool и должен устанавливаться отдельно. Чаще всего его устанавливают, клонируя репозиторий с GitHub.
Чтобы избежать незначительных предупреждений, которые могут появиться при первой установке tarantool-perl, сначала
установите другие модули, используемые tarantool-perl, с помощью CPAN
(Comprehensive Perl Archive Network):
$ sudo cpan install AnyEvent$ sudo cpan install Devel::GlobalDestruction
Затем для установки самого tarantool-perl выполните:
$ git clone https://github.com/tarantool/tarantool-perl.git tarantool-perl$ cd tarantool-perl$ git submodule init$ git submodule update --recursive$ perl Makefile.PL$ make$ sudo make install
Ниже приведена Perl-программа, которая вставляет кортеж [99999,'BB'] в спейс [999] через Perl API. Перед запуском убедитесь,
что экземпляр сервера принимает подключения на адресе localhost:3301 и что спейс examples существует, как описано в
разделе Настройка сервера для примеров с коннекторами. Для запуска скопируйте код в файл с именем example.pl и выполните
команду perl example.pl.
Программа выполнит следующие действия:
- Подключение с использованием определения спейса, заданного в приложении.
- Открытие сокетного соединения с сервером Tarantool на адресе
localhost:3301. - Отправку запроса INSERT и, при успешном выполнении, завершит работу без вывода сообщений.
Если Tarantool не запущен на адресе localhost:3301, программа выведет сообщение Connection refused.
#!/usr/bin/perluse DR::Tarantool ':constant', 'tarantool';use DR::Tarantool ':all';use DR::Tarantool::MsgPack::SyncClient;my $tnt = DR::Tarantool::MsgPack::SyncClient->connect(host => '127.0.0.1', # ищем tarantool на localhostport => 3301, # на порту 3301user => 'guest', # имя пользователя. для 'guest' параметр 'password=>...' не указываетсяspaces => {999 => { # определение space[999] ...name => 'examples', # space[999] имя = 'examples'default_type => 'STR', # тип поля space[999] = 'STR', если не определёнfields => [ { # определение space[999].fields ...name => 'field1', type => 'NUM' } ], # space[999].field[1] имя='field1', тип='NUM'indexes => { # определение индексов space[999] ...0 => {name => 'primary', fields => [ 'field1' ] } } } } );$tnt->insert('examples' => [ 99999, 'BB' ]);
В примере программы используются имена типов полей STR и NUM вместо
string и unsigned
из-за временного ограничения Perl.
Пример программы демонстрирует только один запрос и не показывает всё, что необходимо для полноценной работы. Подробнее см. в репозитории tarantool-perl.