Provided by: libfilter-perl_1.64-1_amd64 bug

NAME

       Filter::m4 - M4 source filter

SYNOPSIS

           use Filter::m4;
           use Filter::m4 'prefix';

DESCRIPTION

       This source filter pipes the current source file through the M4 macro processor ("m4") 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 the following line near the top.

           use Filter::m4;

EXAMPLE

       Here is a small example that shows how to define and use an M4 macro:

           use Filter::m4;

           define(`foo', `$1 =~ s/bar/baz/r')

           $a = "foobar";
           print "a = " . foo(`$a') . "\n";

       The output of the above example:

           a = foobaz

NOTES

       By default, M4 uses ` and ' as quotes; however, this is configurable using M4's
       "changequote" builtin.

       M4 uses $1, $2, etc., to indicate arguments in macros.  To avoid clashes with Perl regex
       syntax it is recommended to use Perl's alternative forms "${1}", "${1}", etc.

       The following keywords in M4 and Perl are identical:

           eval
           format
           index
           mkstemp
           shift
           substr

       If you need such keywords in your Perl code you have to use one of the following three
       solutions.

       •   Protect the keyword with M4 quotes, for example `shift'.

       •   Redefine the problematic M4 builtin using "defn", as outlined in section Renaming
           macros of the M4 info manual.

       •   Use the "prefix" option.  This adds the prefix "m4_" to all M4 builtins (but not to
           user-defined macros).  For example, you will have to use "m4_shift" instead of
           "shift".

AUTHOR

       Werner Lemberg

DATE

       17th March 2018.