Home | History | Annotate | Download | only in doc
      1 The perltest program
      2 --------------------
      3 
      4 The perltest.pl script tests Perl's regular expressions; it has the same
      5 specification as pcretest, and so can be given identical input, except that
      6 input patterns can be followed only by Perl's lower case modifiers and certain
      7 other pcretest modifiers that are either handled or ignored:
      8 
      9   /+   recognized and handled by perltest
     10   /++  the second + is ignored
     11   /8   recognized and handled by perltest
     12   /J   ignored
     13   /K   ignored
     14   /W   ignored
     15   /S   ignored
     16   /SS  ignored
     17   /Y   ignored
     18 
     19 The pcretest \Y escape in data lines is removed before matching. The data lines
     20 are processed as Perl double-quoted strings, so if they contain " $ or @
     21 characters, these have to be escaped. For this reason, all such characters in
     22 the Perl-compatible testinput1 file are escaped so that they can be used for
     23 perltest as well as for pcretest. The special upper case pattern modifiers such
     24 as /A that pcretest recognizes, and its special data line escapes, are not used
     25 in the Perl-compatible test file. The output should be identical, apart from
     26 the initial identifying banner.
     27 
     28 The perltest.pl script can also test UTF-8 features. It recognizes the special
     29 modifier /8 that pcretest uses to invoke UTF-8 functionality. The testinput4
     30 and testinput6 files can be fed to perltest to run compatible UTF-8 tests.
     31 However, it is necessary to add "use utf8; require Encode" to the script to
     32 make this work correctly. I have not managed to find a way to handle this
     33 automatically.
     34 
     35 The other testinput files are not suitable for feeding to perltest.pl, since
     36 they make use of the special upper case modifiers and escapes that pcretest
     37 uses to test certain features of PCRE. Some of these files also contain
     38 malformed regular expressions, in order to check that PCRE diagnoses them
     39 correctly.
     40 
     41 Philip Hazel
     42 January 2012
     43