Thrift now a TLP - INFRA-3116

git-svn-id: https://svn.apache.org/repos/asf/thrift/branches/0.1.x@1028168 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tutorial/perl/PerlClient.pl b/tutorial/perl/PerlClient.pl
new file mode 100644
index 0000000..1d59656
--- /dev/null
+++ b/tutorial/perl/PerlClient.pl
@@ -0,0 +1,82 @@
+#!/usr/bin/env perl
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+use strict;
+use warnings;
+
+use lib '../../lib/perl/lib';
+use lib '../gen-perl';
+
+use Thrift;
+use Thrift::BinaryProtocol;
+use Thrift::Socket;
+use Thrift::BufferedTransport;
+
+use shared::SharedService;
+use tutorial::Calculator;
+use shared::Types;
+use tutorial::Types;
+
+use Data::Dumper;
+
+my $socket    = new Thrift::Socket('localhost',9090);
+my $transport = new Thrift::BufferedTransport($socket,1024,1024);
+my $protocol  = new Thrift::BinaryProtocol($transport);
+my $client    = new tutorial::CalculatorClient($protocol);
+
+
+eval{
+    $transport->open();
+
+    $client->ping();
+    print "ping()\n";
+
+
+    my $sum = $client->add(1,1);
+    print "1+1=$sum\n";
+
+    my $work = new tutorial::Work();
+
+    $work->op(tutorial::Operation::DIVIDE);
+    $work->num1(1);
+    $work->num2(0);
+
+    eval {
+        $client->calculate(1, $work);
+        print "Whoa! We can divide by zero?\n";
+    }; if($@) {
+        warn "InvalidOperation: ".Dumper($@);
+    }
+
+    $work->op(tutorial::Operation::SUBTRACT);
+    $work->num1(15);
+    $work->num2(10);
+    my $diff = $client->calculate(1, $work);
+    print "15-10=$diff\n";
+
+    my $log = $client->getStruct(1);
+    print "Log: $log->{value}\n";
+
+    $transport->close();
+
+}; if($@){
+    warn(Dumper($@));
+}