summaryrefslogtreecommitdiff
path: root/tutorial/perl
diff options
context:
space:
mode:
authorMark Slee <mcslee@apache.org>2007-05-16 02:40:12 +0000
committerMark Slee <mcslee@apache.org>2007-05-16 02:40:12 +0000
commit738ad31baf286e5ef0cd9aa35892c3523a083183 (patch)
tree73d1080bcafdcbcc267a0a8ca721bdf3caae2a67 /tutorial/perl
parent3e3d7ad8349e76fcfaf82980e2598ec011b314f6 (diff)
downloadthrift-738ad31baf286e5ef0cd9aa35892c3523a083183.tar.gz
Perl tutorial code
Summary: Jake Luciani Reviewed By: mcslee git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665116 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tutorial/perl')
-rw-r--r--tutorial/perl/PerlClient.pl63
1 files changed, 63 insertions, 0 deletions
diff --git a/tutorial/perl/PerlClient.pl b/tutorial/perl/PerlClient.pl
new file mode 100644
index 000000000..ad9c1d60f
--- /dev/null
+++ b/tutorial/perl/PerlClient.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+
+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 SharedService;
+use shared_types;
+use Calculator;
+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 CalculatorClient($protocol);
+
+
+eval{
+ $transport->open();
+
+ $client->ping();
+ print "ping()\n";
+
+
+ my $sum = $client->add(1000000,1);
+ print "1+1=$sum\n";
+
+ my $work = new Work();
+
+ $work->{op} = 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} = 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($@));
+}