Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for re (redhat section 3pm)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

re(3pm) 			 Perl Programmers Reference Guide			  re(3pm)

       re - Perl pragma to alter regular expression behaviour

	   use re 'taint';
	   ($x) = ($^X =~ /^(.*)$/s);	  # $x is tainted here

	   $pat = '(?{ $foo = 1 })';
	   use re 'eval';
	   /foo${pat}bar/;		  # won't fail (when not under -T switch)

	       no re 'taint';		  # the default
	       ($x) = ($^X =~ /^(.*)$/s); # $x is not tainted here

	       no re 'eval';		  # the default
	       /foo${pat}bar/;		  # disallowed (with or without -T switch)

	   use re 'debug';		  # NOT lexically scoped (as others are)
	   /^(.*)$/s;			  # output debugging info during
					  #	compile and run time

	   use re 'debugcolor'; 	  # same as 'debug', but with colored output

       (We use $^X in these examples because it's tainted by default.)

       When "use re 'taint'" is in effect, and a tainted string is the target of a regex, the
       regex memories (or values returned by the m// operator in list context) are tainted.  This
       feature is useful when regex operations on tainted data aren't meant to extract safe sub-
       strings, but to perform other transformations.

       When "use re 'eval'" is in effect, a regex is allowed to contain "(?{ ... })" zero-width
       assertions even if regular expression contains variable interpolation.  That is normally
       disallowed, since it is a potential security risk.  Note that this pragma is ignored when
       the regular expression is obtained from tainted data, i.e.  evaluation is always disal-
       lowed with tainted regular expresssions.  See "(?{ code })" in perlre.

       For the purpose of this pragma, interpolation of precompiled regular expressions (i.e.,
       the result of "qr//") is not considered variable interpolation.	Thus:


       is allowed if $pat is a precompiled regular expression, even if $pat contains "(?{ ... })"

       When "use re 'debug'" is in effect, perl emits debugging messages when compiling and using
       regular expressions.  The output is the same as that obtained by running a "-DDEBUG-
       GING"-enabled perl interpreter with the -Dr switch. It may be quite voluminous depending
       on the complexity of the match.	Using "debugcolor" instead of "debug" enables a form of
       output that can be used to get a colorful display on terminals that understand termcap
       color sequences.  Set $ENV{PERL_RE_TC} to a comma-separated list of "termcap" properties
       to use for highlighting strings on/off, pre-point part on/off.  See "Debugging regular
       expressions" in perldebug for additional info.

       The directive "use re 'debug'" is not lexically scoped, as the other directives are.  It
       has both compile-time and run-time effects.

       See "Pragmatic Modules" in perlmodlib.

perl v5.8.0				    2002-06-01					  re(3pm)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 01:47 PM.