This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document -l on symlinkless file systems
[perl5.git] / pod / perlfilter.pod
index d43028c..2706188 100644 (file)
@@ -81,9 +81,8 @@ a source filter is just a special kind of module. Like all Perl
 modules, a source filter is invoked with a use statement.
 
 Say you want to pass your Perl source through the C preprocessor before
-execution. You could use the existing C<-P> command line option to do
-this, but as it happens, the source filters distribution comes with a C
-preprocessor filter module called Filter::cpp. Let's use that instead.
+execution. As it happens, the source filters distribution comes with a C
+preprocessor filter module called Filter::cpp.
 
 Below is an example program, C<cpp_test>, which makes use of this filter.
 Line numbers have been added to allow specific lines to be referenced
@@ -205,7 +204,7 @@ source filter (see Decryption Filters, below).
 
 All decryption filters work on the principle of "security through
 obscurity." Regardless of how well you write a decryption filter and
-how strong your encryption algorithm, anyone determined enough can
+how strong your encryption algorithm is, anyone determined enough can
 retrieve the original source code. The reason is quite simple - once
 the decryption filter has decrypted the source back to its original
 form, fragments of it will be stored in the computer's memory as Perl
@@ -218,7 +217,7 @@ difficult for the potential cracker. The most important: Write your
 decryption filter in C and statically link the decryption module into
 the Perl binary. For further tips to make life difficult for the
 potential cracker, see the file I<decrypt.pm> in the source filters
-module.
+distribution.
 
 =back
 
@@ -227,7 +226,7 @@ module.
 An alternative to writing the filter in C is to create a separate
 executable in the language of your choice. The separate executable
 reads from standard input, does whatever processing is necessary, and
-writes the filtered data to standard output. C<Filter:cpp> is an
+writes the filtered data to standard output. C<Filter::cpp> is an
 example of a source filter implemented as a separate executable - the
 executable is the C preprocessor bundled with your C compiler.
 
@@ -235,7 +234,7 @@ The source filter distribution includes two modules that simplify this
 task: C<Filter::exec> and C<Filter::sh>. Both allow you to run any
 external executable. Both use a coprocess to control the flow of data
 into and out of the external executable. (For details on coprocesses,
-see Stephens, W.R. "Advanced Programming in the UNIX Environment."
+see Stephens, W.R., "Advanced Programming in the UNIX Environment."
 Addison-Wesley, ISBN 0-210-56317-7, pages 441-445.) The difference
 between them is that C<Filter::exec> spawns the external command
 directly, while C<Filter::sh> spawns a shell to execute the external
@@ -389,9 +388,9 @@ Two special marker lines will bracket debugging code, like this:
     }
     ## DEBUG_END
 
-When the C<DEBUG> environment variable exists, the filter ensures that
-Perl parses only the code between the C<DEBUG_BEGIN> and C<DEBUG_END>
-markers. That means that when C<DEBUG> does exist, the code above
+The filter ensures that Perl parses the code between the <DEBUG_BEGIN>
+and C<DEBUG_END> markers only when the C<DEBUG> environment variable
+exists. That means that when C<DEBUG> does exist, the code above
 should be passed through the filter unchanged. The marker lines can
 also be passed through as-is, because the Perl parser will see them as
 comment lines. When C<DEBUG> isn't set, we need a way to disable the