I think so. Thanks Jason. I'll have to change the java to return something perl can digest.
-----Original Message----- From: Jason Stelzer [mailto:men...@neverlight.com] Sent: Wednesday, January 26, 2011 5:26 PM To: VANOLE, MICHAEL J (ATTSI) Cc: inline Subject: Re: Inline Java - dereferencing On Jan 26, 2011, at 4:58 PM, VANOLE, MICHAEL J (ATTSI) wrote: > Hi, this may be a basic perl question. I'm using inline::java to execute > some public methods like this one: > > public User findUserByLogin(String loginName, boolean populate) > { > User ret = null; > try { > ret = impl.findUserByLogin(loginName, populate); > } catch (ExecuteException e) { > this.trapError(1, "Error looking up user. > loginName=" + loginName > + " populate =" + populate + > "\nERROR:" > + e.getMessage(), e); > } > return ret; > } > > I call it: > $obj = $mstdAdmin->findUserByLogin('myuserid',1); > > Print "$obj\n"; > Inline::Java::Object=HASH(0xaae924) > > I'm having a helluva time trying to dereference this > > %hash = %$obj; > foreach my $k (keys %hash) {print "$k: $hash{$k}\n"; > prints nothing. > I don't really quite understand what you're trying to do. What do you expect it to print? You've returned a User object. What are it's public methods? What happens when you call them? You have a reference to a java object. The proxy details aren't that important, but you should be calling whatever public methods are actually implemented by your object. For instance, if User had something like: public String getFirstName(){ return firstName; } On the perl side you could do: $name = $obj->getFirstName(); Does that help you? -- Jason Stelzer men...@neverlight.com