Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Preprocessor, library files

by James Board (Beadle)
on Dec 26, 2008 at 19:33 UTC ( #732700=perlquestion: print w/ replies, xml ) Need Help??
James Board has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

The following is a working perl script (progA.pl):
#!/usr/bin/perl -P use strict; #define C 10 my $var = C; print $var . "\n";
However, if I include that in another perl file as a library, it no longer works:
#!/usr/bin/perl -P require "progA.pl";
The problem is that the preprocessor (notice the -P switch) isn't processing included library files. Is there any way to make the preprocessor process included files?

Jim

Update: This is a contrived example. I simplified it for this forum to isolate the problem, which is the fact that the preprocessor ignores included library files. In reality, I have several perl library files which I created, and I want subroutines in those files to be able to call the same subroutine messageLog() and have it behave differently based on which file it was called from (so I can turn off/on message logging from a specific file). I don't know if I can do that with Perl syntax, but I know I can do it with macros: just define the macro for messageLog() at the beginning of each file.

Comment on Preprocessor, library files
Select or Download Code
Re: Preprocessor, library files
by gwadej (Chaplain) on Dec 26, 2008 at 19:43 UTC

    I had forgotten all about -P.

    perlrun recommends avoiding -P. As another option, it suggests Filter::cpp. Maybe it's worth a look.

    G. Wade
Re: Preprocessor, library files
by webfiend (Vicar) on Dec 26, 2008 at 19:45 UTC

    From perlrun:

    NOTE: Use of -P is strongly discouraged because of its inherent problems, including poor portability. It is deprecated and will be removed in a future version of Perl.

    ...

    If you’re considering using "-P", you might also want to look at the Filter::cpp module from CPAN.

    Update: I'm too slow. Oh well. Why do you want the preprocessor, anyways? I'd think that using a plain old variable would work just fine in that circumstance.

Re: Preprocessor, library files
by Jenda (Abbot) on Dec 26, 2008 at 20:00 UTC
Re: Preprocessor, library files
by spmlingam (Scribe) on Dec 27, 2008 at 06:19 UTC
Re: Preprocessor, library files
by webfiend (Vicar) on Dec 27, 2008 at 06:28 UTC

    Oh, you want to find-tune logging behavior for particular files in your project? Have you taken a close look at log4perl? It gives you a lot of fine-grained control over your logging, down to which packages get what level of debugging. Maybe that'll fit for you.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://732700]
Approved by planetscape
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2014-09-18 00:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (101 votes), past polls