Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

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 на localhost  port    => 3301,                             # на порту 3301  user    => '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.