Hello
As suggested, I tried passing
> my @bytes = unpack("C*", $in) ;
> $this->method([EMAIL PROTECTED]) ;
However, I get the following error
[Mon Jan 19 21:17:33 2004] [error] [client 192.168.1.10] 192 out of
range for type byte at
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Inline/Java/Array
.pm line 540
I believe that 192 is the first part of the structure, being part of an
IP address.
Any ideas why that is happening ?
Thanks
Chris
> -----Original Message-----
> From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED]
> Sent: 18 January 2004 14:08
> To: Chris Faulkner
> Cc: [EMAIL PROTECTED]
> Subject: Re: Inline Java
>
>
> Chris,
>
> The warning you mentionned at the end has already been
> reported and will be fixed in the next release.
>
> With regards to your first question, it's actually a very
> interesting problem. Presently, Perl filehandles are not
> automatically mapped to Java Streams.
>
> The only thing I can think of right now is using a byte array:
>
> method(byte buf[]) ;
>
> and using unpack to create a Perl list:
>
> my @bytes = unpack("C*", $in) ;
> $this->method([EMAIL PROTECTED]) ;
>
> This is pretty inefficient but I think it should work.
>
> I'll keep thinking about it, and let me know if you find
> anything or if this works for you.
>
> Patrick
>
>
> > Hello
> >
> > I have a perl cgi script that reads some binary data from STDIN. It
> > does it like this:
> >
> > binmode STDIN;
> > read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
> >
> > I have some Inline Java code a couple of methiclass. I
> would like to
> > pass that binary data ($in) to a Java method. How is this
> done ? DO I
> > need some kind of InputStream ? I have tried this, as well as
> > DataInputStream
> >
> > method (java.io.InputStream is )
> >
> > but in my error log I see a message "Can't convert" which is not a
> > message anywhere in my class. I know that there is data in
> $in because
> > I have written out out to a binary file.
> >
> > How can I pass the data ?
> >
> > One other small thing, when I run with perl -w, I see this:
> >
> > [Sat Jan 17 23:54:46 2004] [error] [client 192.168.1.10]
> v-string in
> > use/require non-portable at
> >
> /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Inline/Java.pm
> > line 9.
> >
> > Line 9 simply is an import of java.util.Date
> >
> > use Inline Java => <<'END_OF_JAVA_CODE',DIRECTORY =>
> '/tmp/Inline' ;
> > import java.io.*; import java.util.*;
> > import java.util.Date;
> > import java.text.*;
> >
> > Thanks
> >
> >
> > Chris
> >
> >
> >
>
>