diff -urN ../Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/Conf/Parser.pm ./lib/Mail/SpamAssassin/Conf/Parser.pm --- ../Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/Conf/Parser.pm 2014-02-07 10:36:23.000000000 +0200 +++ ./lib/Mail/SpamAssassin/Conf/Parser.pm 2014-11-30 20:04:19.000000000 +0200 @@ -533,6 +533,9 @@ elsif ($token eq 'version') { $eval .= $Mail::SpamAssassin::VERSION." "; } + elsif ($token eq 'perl_version') { + $eval .= $]." "; + } elsif ($token =~ /^\w[\w\:]+$/) { # class name my $u = untaint_var($token); $eval .= '"' . $u . '" '; diff -urN ../Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/Conf.pm ./lib/Mail/SpamAssassin/Conf.pm --- ../Mail-SpamAssassin-3.4.0.orig/lib/Mail/SpamAssassin/Conf.pm 2014-02-07 10:36:28.000000000 +0200 +++ ./lib/Mail/SpamAssassin/Conf.pm 2014-11-30 20:04:05.000000000 +0200 @@ -3862,6 +3862,20 @@ version, and z is maintenance version. So 3.0.0 is C<3.000000>, and 3.4.80 is C<3.004080>. +=item perl_version + +This will be replaced with the version number of the currently-running +perl engine. Note: The version used is in the $] version format which is +C, where x is major version, y is minor version, and z is maintenance +version. So 5.8.8 is C<5.008008>, and 5.10.0 is C<5.010000>. Use to protect rules +that incorporate RE syntax elements introduced in later versions of perl, such +as the C<++> non-backtracking match. For example: + + # Avoid lint error on older perl installs + if perl_version >= 5.010000 + body INVALID_RE_SYNTAX_IN_PERL_5_8_8 /\w++/ + endif + =item plugin(Name::Of::Plugin) This is a function call that returns C<1> if the plugin named