Reini Urban > Filter-1.50 > Filter::cpp

Download:
Filter-1.50.tar.gz

Dependencies

Annotate this POD

Related Modules

Win32::API
Filter::Simple
Apache::DBI
Parse::RecDescent
Regexp::Common
Win32::RASE
XML::Twig
more...
By perlmonks.org

CPAN RT

New  1
Open  0
Stalled  2
View/Report Bugs
Module Version: 1.43   Source  

NAME ^

Filter::cpp - cpp source filter

SYNOPSIS ^

    use Filter::cpp ;

DESCRIPTION ^

This source filter pipes the current source file through the C pre-processor (cpp) if it is available.

As with all source filters its scope is limited to the current source file only. Every file you want to be processed by the filter must have a

    use Filter::cpp ;

near the top.

Here is an example script which uses the filter:

    use Filter::cpp ;

    #define FRED 1
    $a = 2 + FRED ;
    print "a = $a\n" ;
    #ifdef FRED
    print "Hello FRED\n" ;
    #else
    print "Where is FRED\n" ;
    #endif

And here is what it will output:

    a = 3
    Hello FRED

This example below, provided by Michael G Schwern, shows a clever way to get Perl to use a C pre-processor macro when the Filter::cpp module is available, or to use a Perl sub when it is not.

    # use Filter::cpp if we can.
    BEGIN { eval 'use Filter::cpp' }

    sub PRINT {
        my($string) = shift;

    #define PRINT($string) \
        (print $string."\n")
    }
     
    PRINT("Mu");

Look at Michael's Tie::VecArray module for a practical use.

AUTHOR ^

Paul Marquess

DATE ^

11th December 1995.

syntax highlighting: