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
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.