oracular (3) Filter::m4.3pm.gz

Provided by: libfilter-perl_1.64-1build4_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.