It is more than likely that you ought to use a hash *reference*, not a
hash. In other words:
$hashTable = {};
$hashTable->{"first"} = 1;
$hashTable->{"second"} = 2;
return $hashTable;
On Sun, Jan 17, 2010 at 9:16 PM, BlackMage <[email protected]> wrote:
>
> I am having problem with a Java program that calls a Perl/CGI Script, creates
> a hash and returns. A simple example looks like this:
>
> Perl Script:
>
> [code]
>
> sub createHash{
>
> %hashTable = ();
>
> $hashTable{"first"} = 1; # inserts a new hash table entry with key="first"
> and value=1
> $hashTable{"second"} = 2; # new entry with key="second" and value=2
>
> return %hashTable;
>
> }#end createHash
>
> [/code]
>
> Java Program
>
> {code}
>
> public void getHash(){
>
> HashMap hashmap=new HashMap();
> Vector params = new Vector();
>
> //Create Variables
> try {
> XmlRpcClient xmlrpc = new XmlRpcClient(SERVER_URL);
>
> //Set Strings
> String methodName = "MyProgram.createHash";
>
>
>
> System.out.println(xmlrpc.execute( methodName, params));
> //The line below is commented out because it throws an error
> //hashmap=(HashMap) xmlrpc.execute( methodName, params);
>
>
>
> } catch (MalformedURLException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } catch (XmlRpcException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> } catch (IOException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
>
>
>
> }//end class
>
> {code}
>
>
> The problems are this, when, I System.out.print the return hash created in
> Perl, is only prints out the last value. When I cast the return value to a
> Java Hash, it throws a string execption.
>
> So how do I return a hash table or multiple values from a perl program?
> --
> View this message in context:
> http://old.nabble.com/XML-RPC-Return-Hash-Map-tp27202339p27202339.html
> Sent from the Apache Xml-RPC - Dev mailing list archive at Nabble.com.
>
>
--
Germanys national anthem is the most boring in the world - how telling!