On Wed, 28 Dec 2005, Octavian Rasnita wrote:
> I have tried to store some data in a perl program under the
> 
> __DATA__
> 
> mark, then to read from there using:
> 
> while(<DATA>) {
> ...
> }
> 
> The program works when I run it as a .pl file, but if I create a .exe file
> using perlapp, it doesn't read anything from <DATA>.
> 
> Is there something I can do to make it work?

This is supposed to work.  I just tested it with this little test program, and
it seemed to work fine:

  use strict;
  use warnings;

  print "start\n";
  while (<DATA>) {
      chomp;
      print "data: $_\n";
  }
  print "done\n";
  __DATA__
  one
  two
  three

I've been using ActivePerl build 815 and PerlApp 6.0.2 for this test.

Can you send me a small sample program in which the DATA filehandle doesn't 
work?

> I cannot put the data in a big array, because it is too much data (over 7
> mb) and the program works very slow in that case.
> 
> Or is there other way of using a separate file which is included in the .exe
> program, but it is not stored as a .txt file?

You can use the --bind option to bundle additional data with your executable.
Then use the PerlApp::get_bound_file() function to read this data at runtime.
See `perlapp --help get_bound_file` for a sample.

Cheers,
-Jan



Reply via email to