From f46d44fa0adadc3e0dba37acaff33b4879a15b25 Mon Sep 17 00:00:00 2001
From: Konstantin Osipov <kostja.osipov@gmail.com>
Date: Thu, 9 Jun 2011 19:21:19 +0400
Subject: [PATCH] User guide: add the Perl client manual (from tarantool.wiki).

---
 doc/user/connectors.xml | 111 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 109 insertions(+), 2 deletions(-)

diff --git a/doc/user/connectors.xml b/doc/user/connectors.xml
index 9db6a195fb..cbb5e6541b 100644
--- a/doc/user/connectors.xml
+++ b/doc/user/connectors.xml
@@ -25,8 +25,115 @@
   <section>
     <title>Perl</title>
     <para>
-       Please see <link
-       xlink:href="https://github.com/mailru/tarantool/blob/master/mod/box/client/perl/lib/"><filename>mod/box/client/perl/lib/</filename></link> in the source tree.
+       The perl client is located in <link
+       xlink:href="https://github.com/mailru/tarantool/blob/master/mod/box/client/perl/lib/"><filename>mod/box/client/perl/lib/</filename></link>.
+    <orderedlist>
+
+    <listitem>
+      <simpara><emphasis role="strong">new</emphasis></simpara>
+<programlisting language="perl"><![CDATA[
+     my $box = MR::SilverBox->new({
+            namespaces => [ {
+                indexes => [ {
+                    index_name   => 'primary_id',
+                    keys         => [0],
+                }, {
+                    index_name   => 'primary_email',
+                    keys         => [1],
+                }, ],
+                namespace     => 0,
+                format        => 'l& SSLL',
+                default_index => 'primary_id',
+            } ],
+        },
+        servers      => $server})
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Insert</emphasis></simpara>
+<programlisting language="perl">
+    $box->Insert(@tuple);
+</programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Select</emphasis></simpara>
+<programlisting language="perl"><![CDATA[
+    [\%tuple1, \%tuple2, ...] = $box->Select(@id);
+    \%tuple = $box->Select($id);
+    [\@tuple1, \@tuple2, ...] = $box->Select(@id, {raw => 1});
+    \@tuple = $box->Select($id, {raw => 1});
+    $box->Select($email, {use_index => 1});
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Update</emphasis>
+      accepts parameters in the last argument just like Select:</simpara>
+<programlisting language="perl"><![CDATA[
+    $key = 1; # key, ID of user by default
+    $field_num = 2; # posititon in tuple, starts from 0, must be >= 1
+    $value = pack('L', 123);  # integer values must be packed
+    $box->Update($key, $field_num, $value);
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Delete</emphasis></simpara>
+<programlisting language="perl"><![CDATA[
+    $box->Delete($key);
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">AndXorAdd</emphasis>
+      transforms the tuple field at position <quote>$field_num</quote>
+      according to formula <quote>field= ((field &amp; $and_mask) ^ $xor_mask) + $add_value</quote>.
+      </simpara>
+<programlisting language="perl"><![CDATA[
+    $box->AndXorAdd($key, $field_num, $and_mask, $xor_mask, $add_value);
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Bit</emphasis>
+      performs a bitwise operation on field at position
+      <quote>$field_num</quote>. Unused arguments can be omitted.
+      Note: <quote>set</quote> has a higher precedence than
+      <quote>bit_set</quote> and <quote>bit_clear</quote>.
+      </simpara>
+<programlisting language="perl"><![CDATA[
+     $box->Bit($key, $field_num, bit_clear => $clear_mask, bit_set => $set_mask, set => $set_value);
+     $box->Bit($key, $field_num, bit_set => $set_mask);
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Num</emphasis>
+      performs a numeric update operation on field at position
+      <quote>$field_num</quote>. Unused arguments can be omitted.
+      Note: again, <quote>set</quote> has a higher precedence than
+      <quote>num_add</quote> and <quote>num_sub</quote>.
+      </simpara>
+<programlisting language="perl"><![CDATA[
+     $box->Num($key, $field_num, set => $set_value, num_add => $add_value, num_sub => $sub_value);
+]]></programlisting>
+    </listitem>
+
+    <listitem>
+      <simpara><emphasis role="strong">Flag</emphasis>
+      sets or clears flags on a tuple, the calling convention 
+      is the same as for <quote>Bit</quote> and <quote>Num</quote>
+      operations.
+      </simpara>
+<programlisting language="perl"><![CDATA[
+     $box->Flags(bit_set => $set_mask, bit_clear => $clear_mask);
+]]></programlisting>
+    </listitem>
+
+    </orderedlist>
+
     </para>
   </section>
 
-- 
GitLab