From 738ad31baf286e5ef0cd9aa35892c3523a083183 Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Wed, 16 May 2007 02:40:12 +0000 Subject: [PATCH] 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 --- tutorial/perl/PerlClient.pl | 63 +++++++++++++++++++++++++++++++++++++ tutorial/shared.thrift | 2 +- tutorial/tutorial.thrift | 2 +- 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 tutorial/perl/PerlClient.pl diff --git a/tutorial/perl/PerlClient.pl b/tutorial/perl/PerlClient.pl new file mode 100644 index 00000000..ad9c1d60 --- /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($@)); +} diff --git a/tutorial/shared.thrift b/tutorial/shared.thrift index 9b77249d..7596376d 100755 --- a/tutorial/shared.thrift +++ b/tutorial/shared.thrift @@ -1,4 +1,4 @@ -#!/usr/local/bin/thrift -cpp -java -py -php -xsd +#!/usr/local/bin/thrift -cpp -java -py -php -xsd -perl /** * This Thrift file can be included by other Thrift files that want to share diff --git a/tutorial/tutorial.thrift b/tutorial/tutorial.thrift index 0063c091..1cff3435 100644 --- a/tutorial/tutorial.thrift +++ b/tutorial/tutorial.thrift @@ -1,4 +1,4 @@ -#!/usr/local/bin/thrift -cpp -java -py -php -rb -xsd -r +#!/usr/local/bin/thrift -cpp -java -py -php -rb -perl -xsd -r # # Thrift Tutorial # Mark Slee (mcslee@facebook.com) -- 2.17.1