THRIFT-4079 add missing use clauses for included thrift sources in generated perl modules
Client: perl

This closes #1181
diff --git a/compiler/cpp/src/thrift/generate/t_perl_generator.cc b/compiler/cpp/src/thrift/generate/t_perl_generator.cc
index bfe08f9..fd11b2a 100644
--- a/compiler/cpp/src/thrift/generate/t_perl_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_perl_generator.cc
@@ -642,7 +642,15 @@
       ///      "package "<<service_name_<<";"<<endl<<
       autogen_comment() << perl_includes();
 
-  f_service_ << "use " << perl_namespace(tservice->get_program()) << "Types;" << endl;
+  t_program* current = tservice->get_program();
+  std::vector<t_program*>& currInc = current->get_includes();
+  std::vector<t_program*>::size_type numInc = currInc.size();
+  f_service_ << "use " << perl_namespace(current) << "Types;" << endl;
+  for (std::vector<t_program*>::size_type i = 0; i < numInc; ++i)
+  {
+    t_program* incProgram = currInc.at(i);
+    f_service_ << "use " << perl_namespace(incProgram) << "Types;" << std::endl;
+  }
 
   t_service* extends_s = tservice->get_extends();
   if (extends_s != NULL) {