http://www.perlmonks.org?node_id=278562

dragonchild has asked for the wisdom of the Perl Monks concerning the following question:

In Re: Inlining method/function calls?, Zaxo describes using the C preprocessor for macro definitions. All of a sudden, I'm wondering why constant is needed. Could someone tell me why constant is preferable to #define in the following code?
#!/usr/bin/perl -P #define ABC 1 use constant DEF => 1; print ABC, $/; print DEF, $/; ------ $ ./abcd gcc: file path prefix `/usr/ccs/bin/' never used 1 1
One thing I'm noticing is that gcc has a warning it throws up. But, wouldn't using the C preprocessor be faster and use less memory than constant, especially for large numbers of them? I'm thinking of sites with mod_perl and a large number of hits ...

Also, what's the difference in using #include vs. require? And, doesn't #define provide first-class macros where there is no real provision for them in Perl?

------
We are the carpenters and bricklayers of the Information Age.

Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.