Modified: websites/staging/thrift/trunk/content/tutorial/perl.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/perl.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/perl.html Sat Mar 22 
18:57:03 2014
@@ -87,140 +87,120 @@
 </ol>
 <h3 id="prerequisites">Prerequisites</h3>
 <h3 id="client">Client</h3>
-<div class="codehilite"><pre>  <span class="o">::</span><span 
class="p">:</span><span class="n">ruby</span>
-<span class="c1">#</span>
+<p><div class="codehilite"><pre><span class="c1">#</span></p>
+<p><span class="n">use</span> <span class="n">strict</span><span 
class="p">;</span>
+<span class="n">use</span> <span class="n">warnings</span><span 
class="p">;</span></p>
+<p><span class="n">use</span> <span class="n">lib</span> <span 
class="s1">&#39;../../lib/perl/lib&#39;</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">lib</span> <span 
class="s1">&#39;../gen-perl&#39;</span><span class="p">;</span></p>
+<p><span class="n">use</span> <span class="no">Thrift</span><span 
class="p">;</span>
+<span class="n">use</span> <span class="no">Thrift</span><span 
class="o">::</span><span class="no">BinaryProtocol</span><span 
class="p">;</span>
+<span class="n">use</span> <span class="no">Thrift</span><span 
class="o">::</span><span class="no">Socket</span><span class="p">;</span>
+<span class="n">use</span> <span class="no">Thrift</span><span 
class="o">::</span><span class="no">BufferedTransport</span><span 
class="p">;</span></p>
+<p><span class="n">use</span> <span class="n">shared</span><span 
class="o">::</span><span class="no">SharedService</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">tutorial</span><span 
class="o">::</span><span class="no">Calculator</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">shared</span><span 
class="o">::</span><span class="no">Types</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">tutorial</span><span 
class="o">::</span><span class="no">Types</span><span class="p">;</span></p>
+<p><span class="n">use</span> <span class="no">Data</span><span 
class="o">::</span><span class="no">Dumper</span><span class="p">;</span></p>
+<p><span class="n">my</span> <span class="vg">$socket</span>    <span 
class="o">=</span> <span class="kp">new</span> <span 
class="no">Thrift</span><span class="o">::</span><span 
class="no">Socket</span><span class="p">(</span><span 
class="s1">&#39;localhost&#39;</span><span class="p">,</span><span 
class="mi">9090</span><span class="p">);</span>
+<span class="n">my</span> <span class="vg">$transport</span> <span 
class="o">=</span> <span class="kp">new</span> <span 
class="no">Thrift</span><span class="o">::</span><span 
class="no">BufferedTransport</span><span class="p">(</span><span 
class="vg">$socket</span><span class="p">,</span><span 
class="mi">1024</span><span class="p">,</span><span class="mi">1024</span><span 
class="p">);</span>
+<span class="n">my</span> <span class="vg">$protocol</span>  <span 
class="o">=</span> <span class="kp">new</span> <span 
class="no">Thrift</span><span class="o">::</span><span 
class="no">BinaryProtocol</span><span class="p">(</span><span 
class="vg">$transport</span><span class="p">);</span>
+<span class="n">my</span> <span class="vg">$client</span>    <span 
class="o">=</span> <span class="kp">new</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">CalculatorClient</span><span class="p">(</span><span 
class="vg">$protocol</span><span class="p">);</span></p>
+<p><span class="nb">eval</span><span class="p">{</span>
+    <span class="vg">$transport</span><span class="o">-&gt;</span><span 
class="nb">open</span><span class="p">();</span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span 
class="nv">client</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>-<span class="ni">&amp;gt;</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>ping<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>();<span 
class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>print<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>ping()<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;se&quot;</span><span class="nt">&gt;</span>\n<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;s2&quot;</span><span class="nt">&gt;</span><span 
class="ni">&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>my<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span class="nv">sum</span><span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">client</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">
 &quot;n&quot;</span><span class="nt">&gt;</span>add<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>1<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>,<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>1<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span 
class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>print<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>1+1=<span 
class="p">$</span><span class="nv">sum</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;se&quot;</span><span class="nt">&gt;</span>\n<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;s2&quot;</span><span class="nt">&gt;</span><span 
class="ni">&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>my<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;kp&quot;</span><span class="nt">&gt;</span>new<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>tutorial<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>::
 <span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;no&quot;</span><span 
class="nt">&gt;</span>Work<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>();<span class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>tutorial<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>::<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</
 span><span class="s">&quot;no&quot;</span><span 
class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>::<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;no&quot;</span><span 
class="nt">&gt;</span>DIVIDE<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;mi&quot;</span><span 
class="nt">&gt;</span>1<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;mi&quot;</span><span 
class="nt">&gt;</span>0<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>eval<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span><span class="err">{</span><span 
class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">client</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>calculate<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;mi&quot;</span><span 
class="nt">&gt;</span>1<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>,<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</
 span> <span class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span 
class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>print<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>Whoa! We can divide by 
zero?<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;se&quot;</span><span 
class="nt">&gt;</span>\n<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>;<span 
class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>};<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;k&quot;</span><span 
class="nt">&gt;</span>if<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span>@<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>)<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span><span class="err">{</span><span 
class="nt">&lt;/span&gt;</span>
+    <span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>warn<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>InvalidOperation: <span 
class="ni">&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>.<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>Dumper<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span>@<span class="nt
 ">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span 
class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>}<span 
class="nt">&lt;/span&gt;</span>
+
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>op<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>tutorial<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>::<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</
 span><span class="s">&quot;no&quot;</span><span 
class="nt">&gt;</span>Operation<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>::<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;no&quot;</span><span 
class="nt">&gt;</span>SUBTRACT<span class="nt">&lt;/span&gt;&lt;span</span> 
<span class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>num1<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;mi&quot;</span><span 
class="nt">&gt;</span>15<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">work</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>num2<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>(<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;mi&quot;</span><span 
class="nt">&gt;</span>10<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>my<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span class="nv">diff</span><span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">client</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s"
 >&quot;n&quot;</span><span class="nt">&gt;</span>calculate<span 
 >class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
 >class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span 
 >class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
 >class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>1<span 
 >class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
 >class="s">&quot;p&quot;</span><span class="nt">&gt;</span>,<span 
 >class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
 >class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
 >class="nt">&gt;</span><span class="p">$</span><span 
 >class="nv">work</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
 >class="na">class=</span><span class="s">&quot;p&quot;</span><span 
 >class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>print<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>15-10=<span 
class="p">$</span><span class="nv">diff</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;se&quot;</span><span class="nt">&gt;</span>\n<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;s2&quot;</span><span class="nt">&gt;</span><span 
class="ni">&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
 
-<span class="k">use</span> <span class="n">strict</span><span 
class="p">;</span>
-<span class="k">use</span> <span class="n">warnings</span><span 
class="p">;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>my<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;vg&quot;</span><span 
class="nt">&gt;</span><span class="p">$</span><span class="nv">log</span><span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;o&quot;</span><span 
class="nt">&gt;</span>=<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">client</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">
 &quot;n&quot;</span><span class="nt">&gt;</span>getStruct<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;mi&quot;</span><span class="nt">&gt;</span>1<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>);<span 
class="nt">&lt;/span&gt;</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;nb&quot;</span><span class="nt">&gt;</span>print<span 
class="nt">&lt;/span&gt;</span> <span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;s2&quot;</span><span 
class="nt">&gt;</span><span class="ni">&amp;quot;</span>Log: <span 
class="p">$</span><span class="nv">log</span>-<span 
class="ni">&amp;gt;</span><span class="err">{</span>value}<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;se&quot;</span><span class="nt">&gt;</span>\n<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;s2&quot;</span><span class="nt">&gt;</span><span 
class="ni">&amp;quot;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>;<span class="nt">&lt;/span&gt;</span>
 
-<span class="k">use</span> <span class="n">lib</span> <span 
class="o">&amp;</span><span class="c1">#39;../../lib/perl/lib&amp;#39;;</span>
-<span class="k">use</span> <span class="n">lib</span> <span 
class="o">&amp;</span><span class="c1">#39;../gen-perl&amp;#39;;</span>
-
-<span class="k">use</span> <span class="n">Thrift</span><span 
class="p">;</span>
-<span class="k">use</span> <span class="nn">Thrift::</span><span 
class="n">BinaryProtocol</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">Thrift::</span><span 
class="n">Socket</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">Thrift::</span><span 
class="n">BufferedTransport</span><span class="p">;</span>
-
-<span class="k">use</span> <span class="nn">shared::</span><span 
class="n">SharedService</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">tutorial::</span><span 
class="n">Calculator</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">shared::</span><span 
class="n">Types</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">tutorial::</span><span 
class="n">Types</span><span class="p">;</span>
-
-<span class="k">use</span> <span class="nn">Data::</span><span 
class="n">Dumper</span><span class="p">;</span>
-
-<span class="k">my</span> <span class="nv">$socket</span>    <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">Thrift::</span><span class="n">Socket</span><span 
class="p">(</span><span class="o">&amp;</span><span 
class="c1">#39;localhost&amp;#39;,9090);</span>
-<span class="k">my</span> <span class="nv">$transport</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">Thrift::</span><span class="n">BufferedTransport</span><span 
class="p">(</span><span class="nv">$socket</span><span class="p">,</span><span 
class="mi">1024</span><span class="p">,</span><span class="mi">1024</span><span 
class="p">);</span>
-<span class="k">my</span> <span class="nv">$protocol</span>  <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">Thrift::</span><span class="n">BinaryProtocol</span><span 
class="p">(</span><span class="nv">$transport</span><span class="p">);</span>
-<span class="k">my</span> <span class="nv">$client</span>    <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">tutorial::</span><span class="n">CalculatorClient</span><span 
class="p">(</span><span class="nv">$protocol</span><span class="p">);</span>
-
-
-<span class="nb">eval</span><span class="p">{</span>
-    <span class="nv">$transport</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="nb">open</span><span 
class="p">();</span>
-
-    <span class="nv">$client</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">ping</span><span 
class="p">();</span>
-    <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">ping</span><span 
class="p">()</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span>
-
-
-    <span class="k">my</span> <span class="nv">$sum</span> <span 
class="o">=</span> <span class="nv">$client</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;</span><span 
class="n">add</span><span class="p">(</span><span class="mi">1</span><span 
class="p">,</span><span class="mi">1</span><span class="p">);</span>
-    <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="mi">1</span><span 
class="o">+</span><span class="mi">1</span><span class="o">=</span><span 
class="nv">$sum</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span>
-
-    <span class="k">my</span> <span class="nv">$work</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">tutorial::</span><span class="n">Work</span><span 
class="p">();</span>
-
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">op</span><span 
class="p">(</span><span class="nn">tutorial::Operation::</span><span 
class="n">DIVIDE</span><span class="p">);</span>
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">num1</span><span 
class="p">(</span><span class="mi">1</span><span class="p">);</span>
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">num2</span><span 
class="p">(</span><span class="mi">0</span><span class="p">);</span>
-
-    <span class="nb">eval</span> <span class="p">{</span>
-        <span class="nv">$client</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span 
class="n">calculate</span><span class="p">(</span><span 
class="mi">1</span><span class="p">,</span> <span class="nv">$work</span><span 
class="p">);</span>
-        <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">Whoa</span><span 
class="o">!</span> <span class="n">We</span> <span class="n">can</span> <span 
class="n">divide</span> <span class="n">by</span> <span 
class="n">zero</span><span class="p">?</span><span class="o">\</span><span 
class="n">n</span><span class="o">&amp;</span><span class="n">quot</span><span 
class="p">;;</span>
-    <span class="p">};</span> <span class="k">if</span><span 
class="p">(</span><span class="vg">$@</span><span class="p">)</span> <span 
class="p">{</span>
-        <span class="nb">warn</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span 
class="n">InvalidOperation:</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="o">.</span><span 
class="n">Dumper</span><span class="p">(</span><span class="vg">$@</span><span 
class="p">);</span>
-    <span class="p">}</span>
-
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">op</span><span 
class="p">(</span><span class="nn">tutorial::Operation::</span><span 
class="n">SUBTRACT</span><span class="p">);</span>
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">num1</span><span 
class="p">(</span><span class="mi">15</span><span class="p">);</span>
-    <span class="nv">$work</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">num2</span><span 
class="p">(</span><span class="mi">10</span><span class="p">);</span>
-    <span class="k">my</span> <span class="nv">$diff</span> <span 
class="o">=</span> <span class="nv">$client</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;</span><span 
class="n">calculate</span><span class="p">(</span><span 
class="mi">1</span><span class="p">,</span> <span class="nv">$work</span><span 
class="p">);</span>
-    <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="mi">15</span><span 
class="o">-</span><span class="mi">10</span><span class="o">=</span><span 
class="nv">$diff</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span>
-
-    <span class="k">my</span> <span class="nv">$log</span> <span 
class="o">=</span> <span class="nv">$client</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;</span><span 
class="n">getStruct</span><span class="p">(</span><span 
class="mi">1</span><span class="p">);</span>
-    <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">Log:</span> <span 
class="nv">$log</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;{</span><span class="n">value</span><span 
class="p">}</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span>
-
-    <span class="nv">$transport</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="nb">close</span><span 
class="p">();</span>
+<span class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">transport</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;o&quot;</span><span class="nt">&gt;</span>-<span 
class="ni">&amp;gt;</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;n&quot;</span><span 
class="nt">&gt;</span>close<span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>();<span class="nt">&lt;/span&gt;</span>
 </pre></div>
 
 
+<p></pre></div></p>
 <h3 id="server">Server</h3>
-<div class="codehilite"><pre>  <span class="o">::</span><span 
class="p">:</span><span class="n">ruby</span>
-<span class="c1">#</span>
-
-<span class="k">use</span> <span class="n">strict</span><span 
class="p">;</span>
-<span class="k">use</span> <span class="n">lib</span> <span 
class="o">&amp;</span><span class="c1">#39;../gen-perl&amp;#39;;</span>
-<span class="k">use</span> <span class="nn">Thrift::</span><span 
class="n">Socket</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">Thrift::</span><span 
class="n">Server</span><span class="p">;</span>
-<span class="k">use</span> <span class="nn">tutorial::</span><span 
class="n">Calculator</span><span class="p">;</span>
-
-<span class="nb">package</span> <span class="n">CalculatorHandler</span><span 
class="p">;</span>
-<span class="k">use</span> <span class="n">base</span> <span 
class="sx">qw(tutorial::CalculatorIf)</span><span class="p">;</span>
-
-<span class="k">sub </span><span class="nf">new</span> <span class="p">{</span>
-    <span class="k">my</span> <span class="nv">$classname</span> <span 
class="o">=</span> <span class="nb">shift</span><span class="p">;</span>
-    <span class="k">my</span> <span class="nv">$self</span>      <span 
class="o">=</span> <span class="p">{};</span>
-
-    <span class="k">return</span> <span class="nb">bless</span><span 
class="p">(</span><span class="nv">$self</span><span class="p">,</span><span 
class="nv">$classname</span><span class="p">);</span>
-<span class="p">}</span>
+<p><div class="codehilite"><pre><span class="c1">#</span></p>
+<p><span class="n">use</span> <span class="n">strict</span><span 
class="p">;</span>
+<span class="n">use</span> <span class="n">lib</span> <span 
class="s1">&#39;../gen-perl&#39;</span><span class="p">;</span>
+<span class="n">use</span> <span class="no">Thrift</span><span 
class="o">::</span><span class="no">Socket</span><span class="p">;</span>
+<span class="n">use</span> <span class="no">Thrift</span><span 
class="o">::</span><span class="no">Server</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">tutorial</span><span 
class="o">::</span><span class="no">Calculator</span><span 
class="p">;</span></p>
+<p><span class="n">package</span> <span 
class="no">CalculatorHandler</span><span class="p">;</span>
+<span class="n">use</span> <span class="n">base</span> <span 
class="n">qw</span><span class="p">(</span><span class="n">tutorial</span><span 
class="o">::</span><span class="no">CalculatorIf</span><span 
class="p">);</span></p>
+<p><span class="nb">sub</span> <span class="kp">new</span> <span 
class="p">{</span>
+    <span class="n">my</span> <span class="vg">$classname</span> <span 
class="o">=</span> <span class="n">shift</span><span class="p">;</span>
+    <span class="n">my</span> <span class="vg">$self</span>      <span 
class="o">=</span> <span class="p">{};</span></p>
+<div class="codehilite"><pre><span class="nt">&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;k&quot;</span><span 
class="nt">&gt;</span>return<span class="nt">&lt;/span&gt;</span> <span 
class="nt">&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;n&quot;</span><span class="nt">&gt;</span>bless<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>(<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">self</span><span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;p&quot;</span><span class="nt">&gt;</span>,<span 
class="nt">&lt;/span&gt;&lt;span</span> <span class="na">class=</span><span 
class="s">&quot;vg&quot;</span><span class="nt">&gt;</span><span 
class="p">$</span><span class="nv">classnam
 e</span><span class="nt">&lt;/span&gt;&lt;span</span> <span 
class="na">class=</span><span class="s">&quot;p&quot;</span><span 
class="nt">&gt;</span>);<span class="nt">&lt;/span&gt;</span>
+</pre></div>
 
 
-<span class="k">sub </span><span class="nf">ping</span>
+<p><span class="p">}</span></p>
+<p><span class="nb">sub</span> <span class="n">ping</span>
 <span class="p">{</span>
-  <span class="k">print</span> <span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;</span><span class="n">ping</span><span 
class="p">()</span><span class="o">\</span><span class="n">n</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;;</span>
-<span class="p">}</span>
-
-<span class="k">sub </span><span class="nf">add</span>
+  <span class="nb">print</span> <span class="s2">&quot;ping()</span><span 
class="se">\n</span><span class="s2">&quot;</span><span class="p">;</span>
+<span class="p">}</span></p>
+<p><span class="nb">sub</span> <span class="n">add</span>
 <span class="p">{</span>
-  <span class="k">my</span><span class="p">(</span><span 
class="nv">$self</span><span class="p">,</span> <span 
class="nv">$n1</span><span class="p">,</span> <span class="nv">$n2</span><span 
class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span 
class="p">;</span>
-  <span class="nb">printf</span><span class="p">(</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;</span><span 
class="n">add</span><span class="p">(</span><span class="nv">%d</span><span 
class="p">,</span><span class="nv">%d</span><span class="p">)</span><span 
class="o">\</span><span class="n">n</span><span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;,</span> <span class="nv">$n1</span><span 
class="p">,</span> <span class="nv">$n2</span><span class="p">);</span>
-  <span class="k">return</span> <span class="nv">$n1</span> <span 
class="o">+</span> <span class="nv">$n2</span><span class="p">;</span>
-<span class="p">}</span>
-
-<span class="k">sub </span><span class="nf">calculate</span>
+  <span class="n">my</span><span class="p">(</span><span 
class="vg">$self</span><span class="p">,</span> <span 
class="vg">$n1</span><span class="p">,</span> <span class="vg">$n2</span><span 
class="p">)</span> <span class="o">=</span> <span class="vi">@_</span><span 
class="p">;</span>
+  <span class="nb">printf</span><span class="p">(</span><span 
class="s2">&quot;add(%d,%d)</span><span class="se">\n</span><span 
class="s2">&quot;</span><span class="p">,</span> <span 
class="vg">$n1</span><span class="p">,</span> <span class="vg">$n2</span><span 
class="p">);</span>
+  <span class="k">return</span> <span class="vg">$n1</span> <span 
class="o">+</span> <span class="vg">$n2</span><span class="p">;</span>
+<span class="p">}</span></p>
+<p><span class="nb">sub</span> <span class="n">calculate</span>
 <span class="p">{</span>
-  <span class="k">my</span><span class="p">(</span><span 
class="nv">$self</span><span class="p">,</span> <span 
class="nv">$logid</span><span class="p">,</span> <span 
class="nv">$work</span><span class="p">)</span> <span class="o">=</span> <span 
class="nv">@_</span><span class="p">;</span>
-  <span class="k">my</span> <span class="nv">$op</span>   <span 
class="o">=</span> <span class="nv">$work</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;{</span><span 
class="n">op</span><span class="p">};</span>
-  <span class="k">my</span> <span class="nv">$num1</span> <span 
class="o">=</span> <span class="nv">$work</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;{</span><span 
class="n">num1</span><span class="p">};</span>
-  <span class="k">my</span> <span class="nv">$num2</span> <span 
class="o">=</span> <span class="nv">$work</span><span 
class="o">-&amp;</span><span class="ow">gt</span><span class="p">;{</span><span 
class="n">num2</span><span class="p">};</span>
-  <span class="nb">printf</span><span class="p">(</span><span 
class="o">&amp;</span><span class="n">quot</span><span class="p">;</span><span 
class="n">calculate</span><span class="p">(</span><span 
class="nv">%d</span><span class="p">,</span> <span class="nv">%d</span> <span 
class="nv">%d</span> <span class="nv">%d</span><span class="p">)</span><span 
class="o">\</span><span class="n">n</span><span class="o">&amp;</span><span 
class="n">quot</span><span class="p">;,</span> <span 
class="nv">$logid</span><span class="p">,</span> <span 
class="nv">$num1</span><span class="p">,</span> <span 
class="nv">$num2</span><span class="p">,</span> <span 
class="nv">$op</span><span class="p">);</span>
-
-  <span class="k">my</span> <span class="nv">$val</span><span 
class="p">;</span>
-
-  <span class="k">if</span> <span class="p">(</span><span 
class="nv">$op</span> <span class="o">==</span> <span 
class="nn">tutorial::Operation::</span><span class="n">ADD</span><span 
class="p">)</span> <span class="p">{</span>
-    <span class="nv">$val</span> <span class="o">=</span> <span 
class="nv">$num1</span> <span class="o">+</span> <span 
class="nv">$num2</span><span class="p">;</span>
-  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="nv">$op</span> <span class="o">==</span> <span 
class="nn">tutorial::Operation::</span><span class="n">SUBTRACT</span><span 
class="p">)</span> <span class="p">{</span>
-    <span class="nv">$val</span> <span class="o">=</span> <span 
class="nv">$num1</span> <span class="o">-</span> <span 
class="nv">$num2</span><span class="p">;</span>
-  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="nv">$op</span> <span class="o">==</span> <span 
class="nn">tutorial::Operation::</span><span class="n">MULTIPLY</span><span 
class="p">)</span> <span class="p">{</span>
-    <span class="nv">$val</span> <span class="o">=</span> <span 
class="nv">$num1</span> <span class="o">*</span> <span 
class="nv">$num2</span><span class="p">;</span>
-  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="nv">$op</span> <span class="o">==</span> <span 
class="nn">tutorial::Operation::</span><span class="n">DIVIDE</span><span 
class="p">)</span> <span class="p">{</span>
-    <span class="k">if</span> <span class="p">(</span><span 
class="nv">$num2</span> <span class="o">==</span> <span 
class="mi">0</span><span class="p">)</span>
+  <span class="n">my</span><span class="p">(</span><span 
class="vg">$self</span><span class="p">,</span> <span 
class="vg">$logid</span><span class="p">,</span> <span 
class="vg">$work</span><span class="p">)</span> <span class="o">=</span> <span 
class="vi">@_</span><span class="p">;</span>
+  <span class="n">my</span> <span class="vg">$op</span>   <span 
class="o">=</span> <span class="vg">$work</span><span 
class="o">-&gt;</span><span class="p">{</span><span class="n">op</span><span 
class="p">};</span>
+  <span class="n">my</span> <span class="vg">$num1</span> <span 
class="o">=</span> <span class="vg">$work</span><span 
class="o">-&gt;</span><span class="p">{</span><span class="n">num1</span><span 
class="p">};</span>
+  <span class="n">my</span> <span class="vg">$num2</span> <span 
class="o">=</span> <span class="vg">$work</span><span 
class="o">-&gt;</span><span class="p">{</span><span class="n">num2</span><span 
class="p">};</span>
+  <span class="nb">printf</span><span class="p">(</span><span 
class="s2">&quot;calculate(%d, %d %d %d)</span><span class="se">\n</span><span 
class="s2">&quot;</span><span class="p">,</span> <span 
class="vg">$logid</span><span class="p">,</span> <span 
class="vg">$num1</span><span class="p">,</span> <span 
class="vg">$num2</span><span class="p">,</span> <span 
class="vg">$op</span><span class="p">);</span></p>
+<p><span class="n">my</span> <span class="vg">$val</span><span 
class="p">;</span></p>
+<p><span class="k">if</span> <span class="p">(</span><span 
class="vg">$op</span> <span class="o">==</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">Operation</span><span class="o">::</span><span 
class="no">ADD</span><span class="p">)</span> <span class="p">{</span>
+    <span class="vg">$val</span> <span class="o">=</span> <span 
class="vg">$num1</span> <span class="o">+</span> <span 
class="vg">$num2</span><span class="p">;</span>
+  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="vg">$op</span> <span class="o">==</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">Operation</span><span class="o">::</span><span 
class="no">SUBTRACT</span><span class="p">)</span> <span class="p">{</span>
+    <span class="vg">$val</span> <span class="o">=</span> <span 
class="vg">$num1</span> <span class="o">-</span> <span 
class="vg">$num2</span><span class="p">;</span>
+  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="vg">$op</span> <span class="o">==</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">Operation</span><span class="o">::</span><span 
class="no">MULTIPLY</span><span class="p">)</span> <span class="p">{</span>
+    <span class="vg">$val</span> <span class="o">=</span> <span 
class="vg">$num1</span> <span class="o">*</span> <span 
class="vg">$num2</span><span class="p">;</span>
+  <span class="p">}</span> <span class="k">elsif</span> <span 
class="p">(</span><span class="vg">$op</span> <span class="o">==</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">Operation</span><span class="o">::</span><span 
class="no">DIVIDE</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span> <span class="p">(</span><span 
class="vg">$num2</span> <span class="o">==</span> <span 
class="mi">0</span><span class="p">)</span>
     <span class="p">{</span>
-      <span class="k">my</span> <span class="nv">$x</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">tutorial::</span><span class="n">InvalidOperation</span><span 
class="p">;</span>
-      <span class="nv">$x</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">what</span><span 
class="p">(</span><span class="nv">$op</span><span class="p">);</span>
-      <span class="nv">$x</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">why</span><span 
class="p">(</span><span class="o">&amp;</span><span class="c1">#39;Cannot 
divide by 0&amp;#39;);</span>
-      <span class="nb">die</span> <span class="nv">$x</span><span 
class="p">;</span>
+      <span class="n">my</span> <span class="vg">$x</span> <span 
class="o">=</span> <span class="kp">new</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">InvalidOperation</span><span class="p">;</span>
+      <span class="vg">$x</span><span class="o">-&gt;</span><span 
class="n">what</span><span class="p">(</span><span class="vg">$op</span><span 
class="p">);</span>
+      <span class="vg">$x</span><span class="o">-&gt;</span><span 
class="n">why</span><span class="p">(</span><span class="s1">&#39;Cannot divide 
by 0&#39;</span><span class="p">);</span>
+      <span class="n">die</span> <span class="vg">$x</span><span 
class="p">;</span>
     <span class="p">}</span>
-    <span class="nv">$val</span> <span class="o">=</span> <span 
class="nv">$num1</span> <span class="o">/</span> <span 
class="nv">$num2</span><span class="p">;</span>
+    <span class="vg">$val</span> <span class="o">=</span> <span 
class="vg">$num1</span> <span class="o">/</span> <span 
class="vg">$num2</span><span class="p">;</span>
   <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
-    <span class="k">my</span> <span class="nv">$x</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">tutorial::</span><span class="n">InvalidOperation</span><span 
class="p">;</span>
-    <span class="nv">$x</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">what</span><span 
class="p">(</span><span class="nv">$op</span><span class="p">);</span>
-    <span class="nv">$x</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">why</span><span 
class="p">(</span><span class="o">&amp;</span><span class="c1">#39;Invalid 
operation&amp;#39;);</span>
-    <span class="nb">die</span> <span class="nv">$x</span><span 
class="p">;</span>
-  <span class="p">}</span>
-
-  <span class="k">my</span> <span class="nv">$log</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="nn">shared::</span><span class="n">SharedStruct</span><span 
class="p">;</span>
-  <span class="nv">$log</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">key</span><span 
class="p">(</span><span class="nv">$logid</span><span class="p">);</span>
-  <span class="nv">$log</span><span class="o">-&amp;</span><span 
class="ow">gt</span><span class="p">;</span><span class="n">value</span><span 
class="p">(</span><span class="nb">int</span><span class="p">(</span><span 
class="nv">$val</span><span class="p">));</span>
-</pre></div>
-
-
+    <span class="n">my</span> <span class="vg">$x</span> <span 
class="o">=</span> <span class="kp">new</span> <span 
class="n">tutorial</span><span class="o">::</span><span 
class="no">InvalidOperation</span><span class="p">;</span>
+    <span class="vg">$x</span><span class="o">-&gt;</span><span 
class="n">what</span><span class="p">(</span><span class="vg">$op</span><span 
class="p">);</span>
+    <span class="vg">$x</span><span class="o">-&gt;</span><span 
class="n">why</span><span class="p">(</span><span class="s1">&#39;Invalid 
operation&#39;</span><span class="p">);</span>
+    <span class="n">die</span> <span class="vg">$x</span><span 
class="p">;</span>
+  <span class="p">}</span></p>
+<p><span class="n">my</span> <span class="vg">$log</span> <span 
class="o">=</span> <span class="kp">new</span> <span 
class="n">shared</span><span class="o">::</span><span 
class="no">SharedStruct</span><span class="p">;</span>
+  <span class="vg">$log</span><span class="o">-&gt;</span><span 
class="n">key</span><span class="p">(</span><span class="vg">$logid</span><span 
class="p">);</span>
+  <span class="vg">$log</span><span class="o">-&gt;</span><span 
class="n">value</span><span class="p">(</span><span class="n">int</span><span 
class="p">(</span><span class="vg">$val</span><span class="p">));</span>
+</pre></div></p>
 <h2 id="additional-information">Additional Information</h2>
           
        </div>


Reply via email to