Author image Guillaume Aubert


App::GitHooks::Plugin::PerlInterpreter - Enforce a specific Perl interpreter on the first line of Perl files.


This plugin allows you to enforce a specific Perl interpreter on the first line of Perl files. This is particularly useful if you have a system Perl and a more modern PerlBrew installation on your system, and you want to make sure that other developers don't invoke the system Perl by mistake.


Version 1.2.0


This plugin supports the following options in the [PerlInterpreter] section of your .githooksrc file.

        interpreter_regex = /^#!\/usr\/bin\/env perl$/
        recommended_interpreter = #!/usr/bin/env perl


A regular expression that, if matched, indicates a valid hashbang line for Perl scripts.

        interpreter_regex = /^#!\/usr\/bin\/env perl$/

An optional recommendation that will be displayed to the user when the hashbang line is not valid. This will help users fix incorrect hashbang lines.

        recommended_interpreter = #!/usr/bin/env perl

When this option is specified, errors will then display:

        x The Perl interpreter line is correct
            Invalid: #!perl
            Recommended: #!/usr/bin/env perl



Return a pattern to filter the files this plugin should analyze.

        my $file_pattern = App::GitHooks::Plugin::PerlInterpreter->get_file_pattern(
                app => $app,


Return a description of the check performed on files by the plugin and that will be displayed to the user, if applicable, along with an indication of the success or failure of the plugin.

        my $description = App::GitHooks::Plugin::PerlInterpreter->get_file_check_description();


Code to execute for each file as part of the pre-commit hook.

  my $success = App::GitHooks::Plugin::PerlInterpreter->run_pre_commit_file();


Please report any bugs or feature requests through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

        perldoc App::GitHooks::Plugin::PerlInterpreter

You can also look for information at:


Guillaume Aubert, <aubertg at>.


Copyright 2013-2017 Guillaume Aubert.

This code is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details.