Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: C pre-processor in Perl (breaks)

by tye (Sage)
on Jul 29, 2003 at 14:31 UTC ( [id://278843]=note: print w/replies, xml ) Need Help??


in reply to C pre-processor in Perl

Because it doesn't work very well. In particular, the C preprocessor doesn't know Perl syntax. Take this tiny example and save it into cpp.pl:

#define FOO "bar" print qq(The value of FOO is "), FOO, qq("\n);
and then try it out:
$ perl cpp.pl The value of FOO is "FOO" $ perl -P cpp.pl The value of "bar" is "FOO" $
It expands it when it shouldn't and doesn't when it should.

I expect that you could get many C preprocessors to choke or issue warnings on fairly common Perl syntax as well.

This is enough of a reason for me to not use such a trick. There are several other good reasons to not use this given in the thread. One of which I ran into just trying to demonstrate how my tiny example fails. First, on Win32 even with MS VC++ installed:

> perl -P cpp.pl 'cl' is not recognized as an internal or external command, operable program or batch file. > vcvars32 Setting environment for using Microsoft Visual C++ tools. > perl -P cpp.pl Command line error D2003 : missing source filename >
Random Unix box:
$ perl -P cpp.pl ngcc: -: No such file or directory ngcc: No input files specified. $

                - tye

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://278843]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-26 00:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found