Every code file, no matter how small, should be kept in a source-control repository. Adding the magical RCS keywords to your file helps the reader know where the file comes from, in case he or she needs to modify it. This Policy scans your file for comments that look like this:

  # $Revision: 2.14 $
  # $Source: /myproject/lib/ $

A common practice is to use the $Revision$ keyword to automatically define the $VERSION variable like this:

  our ($VERSION) = '$Revision: 1.01 $' =~ m{ \$Revision: \s+ (\S+) }x;


By default, this policy only requires the $Revision$, $Source$, and $Date$ keywords. To specify alternate keywords, pass them into the constructor as a key-value pair, where the key is 'keywords' and the value is a whitespace delimited series of keywords (without the dollar-signs). Or specify them in your .perlcriticrc file like this:

  keywords = Revision Source Date Author Id 

See the doumentation on RCS for a list of supported keywords. Many source control systems are descended from RCS, so the keywords supported by CVS and Subversion are probably the same.


Not every system has source-control tools, so this policy is not loaded by default. To have it loaded into Perl::Critic, put this in your .perlcriticrc file:



Jeffrey Ryan Thalhammer <>


Copyright (c) 2005 Jeffrey Ryan Thalhammer. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module.