---------- Forwarded message ----------
From: Patrick LeBoutillier <[EMAIL PROTECTED]>
Date: Fri, Oct 10, 2008 at 5:11 PM
Subject: Re: Wrapping Inline::Java elegantly?
To: Scott Serr <[EMAIL PROTECTED]>
Try something like this:
package BOB;
use Inline (
Java => 'STUDY',
STUDY => [],
) ;
use Inline::Java qw(study_classes) ;
sub import {
my $class = shift;
Inline::Java->study_classes([EMAIL PROTECTED], undef);
}
That should bind the Java classes to your BOB package, i.e.
BOB::JavaClass1, BOB::JavaClass2.
This is explained a bit at the end of this section:
http://search.cpan.org/~patl/Inline-Java-0.52/Java.pod#STUDYING
Patrick
On Fri, Oct 10, 2008 at 4:27 PM, Scott Serr <[EMAIL PROTECTED]> wrote:
> Michael Peters wrote:
>>
>> I hope I'm not stating the obvious here, but anything you pass to a "use"
>> statement in addition to the module name get's passed into that module's
>> import() sub. Exporter just makes this easy by giving you some vars to play
>> with and it's own import() sub.
>>
>> Ditch Exporter and write your own import() sub to take the list that you
>> want and pass it to Inline::Java's import() sub. Something like this:
>>
>> package BOB;
>> use Inline::Java;
>>
>> sub import {
>> my $class = shift;
>> Inline::Java->import(@_);
>> }
>>
> It's getting passed into the module now, I've verified that:
>
> sub import {
> my $class = shift;
> print @_, "\n";
> }
>
>
> Problem is... using Inline::Java->import(@_); doesn't seem to work. It's
> not exporting the Java class for this module or the caller to see. I
> suspect it's some of magic of Inline Java, having to get at it with the
> 'STUDY' directives... Maybe not, from here everyone looks like an expert.
>
> When trying to access a Java class I get:
> "JavaClass1" is not exported by the Inline::Java module
>
> Thanks,
> Scott
>
>
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada
--
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada