diff options
author | Mark Slee <mcslee@apache.org> | 2007-05-16 02:40:12 +0000 |
---|---|---|
committer | Mark Slee <mcslee@apache.org> | 2007-05-16 02:40:12 +0000 |
commit | 738ad31baf286e5ef0cd9aa35892c3523a083183 (patch) | |
tree | 73d1080bcafdcbcc267a0a8ca721bdf3caae2a67 /tutorial/perl | |
parent | 3e3d7ad8349e76fcfaf82980e2598ec011b314f6 (diff) | |
download | thrift-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.pl | 63 |
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($@)); +} |