                              Source Filters
 
                               Version 1.65
 
                              2022-08-10 rurban
 
        Copyright (c) 1995-2011 Paul Marquess. All rights reserved.
        Copyright (c) 2011-2014, 2018-2022 Reini Urban. All rights reserved.
        Copyright (c) 2014-2017 cPanel Inc. All rights reserved.
        This program is free software; you can redistribute it and/or
                 modify it under the same terms as Perl itself.
 
 
 
DESCRIPTION
-----------
 
This distribution consists of a number of Source Filters.

For more details see the pod documentation embedded in the .pm files.

If you intend using the Filter::Util::Call functionality, I would strongly
recommend that you check out Damian Conway's excellent Filter::Simple
module. Damian's module provides a much cleaner interface than
Filter::Util::Call. Although it doesn't allow the fine control that
Filter::Util::Call does, it should be adequate for the majority of
applications. It's available at

   http://search.cpan.org/dist/Filter-Simple/

LIMITATIONS
-----------

Source filters only work on the string level, thus are highly limited
in its ability to change source code on the fly. It cannot detect
comments, quoted strings, heredocs, it is no replacement for a real
parser.
The only stable usage for source filters are encryption, compression,
or the byteloader, to translate binary code back to source code.

See for example the limitations in Switch, which uses source filters,
and thus is does not work inside a string eval, the presence of
regexes with embedded newlines that are specified with raw /.../
delimiters and don't have a modifier //x are indistinguishable from
code chunks beginning with the division operator /. As a workaround
you must use m/.../ or m?...? for such patterns. Also, the presence of
regexes specified with raw ?...? delimiters may cause mysterious
errors. The workaround is to use m?...? instead.  See
http://search.cpan.org/perldoc?Switch#LIMITATIONS

Currently internal buffer lengths are limited to 32-bit only.


PREREQUISITES
-------------
 
Before you can build the Source Filters you need to have the following
installed on your system:

    * Perl 5.6.0 or better

For older Perls use older versions of Filter.

BUILDING THE MODULES
--------------------
 
Assuming you have met all the prerequisites, building the modules
should be relatively straightforward.

The modules can now be built using this sequence of commands:
 
    perl Makefile.PL
    make
    make test

The filters have been successfully built and tested on the following
systems (at least):

	linux (gcc or clang)
        FreeBSD 11 - 13
	cygwin 1.7
	mingw strawberry
	SunOS 4.1.3 (Sun C compiler & gcc 2.7.2.3)
	Solaris 2.3 (Sun C Compiler)
	irix 5.3	
	irix 6.x	
	Windows XP - 10 (Visual C++)

On Windows tr.exe, cpp.exe, and m4.exe should be really the gnu/mingw tools
in the path for the testsuite to pass successfully.

INSTALLATION
------------
 
    make install
