perl -P in 5.005

I'm trying to use the -P switch with Perl 5.005 on Win95 to get it to do a C preprocessor pass before compiling.  The command 'perl -P test.pl' generates the following error:

  Can't open perl script "test.pl":  Bad file descriptor

I do have Visual C++ on the same machine.  Do I need to specify the location of the C preprocessor somewhere? If so, how do I do this?

Thanks,
Brian
LVL 1
moquinAsked:
Who is Participating?
 
b2piCommented:
Rather than use perl -P (which is problematic, as you've discovered, on Win32), try the following near the top of your program

use strict;
use Filter::cpp ;


You might have to reverse the order of those two.  If perl complains that it can't find Filter/cpp.pm you'll need to download it from CPAN and install.
0
 
moquinAuthor Commented:
Sorry for the delay.  I downloaded the relevant modules as you suggest, but it appears that they are designed to work only with gpp; I get a "Parse Exception" when I use MSVC++ as the preprocessor.  Suggestions?

b

0
 
b2piCommented:
Sorry, I never saw this.... that message is generally an indicator
that you've got conflicting versions of perl, or conflicting versions
of the compiler setup.

Did you download a binary distribution of perl?  If so, you're
probably best off downloading the source code, and then compiling everything
0
 
moquinAuthor Commented:
Source isn't available for ActiveState 5.005 for Win32.

Thanks anyway.  I'll find another way around it.
0
 
b2piCommented:
Hey, wait a minute.  You said you were using perl 5.005, I didn't
think ActiveState was up that high yet (I'm not fond of the
ActiveState port, and generally advise against people using it unless
there's a good reason to, i.e. you really need perlscript).

You'll find a pre-compiled version of Filter at the activestate web
site.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.